ARSperl

 view release on metacpan or  search on metacpan

ARS.pm  view on Meta::CPAN

use Config;

require 'ARS/ar-h.pm';
require 'ARS/arerrno-h.pm';
require 'ARS/nparm.pm';

@ARS::ISA = qw(Exporter DynaLoader);
@ARS::EXPORT = qw(isa_int isa_float isa_string ars_LoadQualifier ars_Login 
ars_Logoff ars_GetListField ars_GetFieldByName ars_GetFieldTable 
ars_DeleteEntry ars_GetEntry ars_GetListEntry ars_GetListSchema 
ars_GetListServer ars_GetActiveLink ars_GetCharMenuItems ars_GetSchema 
ars_ExpandCharMenu
ars_GetField ars_simpleMenu ars_GetListActiveLink ars_SetEntry 
ars_perl_qualifier ars_qualifier_ptr ars_Export ars_GetListFilter ars_GetListEscalation 
ars_GetListCharMenu ars_padEntryid 
ars_GetFilter ars_SetFilter
ars_GetListEntryWithFields ars_GetMultipleEntries
ars_GetProfileInfo ars_Import ars_GetCharMenu ars_GetServerStatistics 
ars_GetCurrentServer ars_EncodeDiary 
ars_CreateEntry ars_MergeEntry ars_DeleteFilter
ars_DeleteMultipleFields ars_DeleteActiveLink
ars_DeleteCharMenu
ars_DeleteEscalation ars_DeleteField ars_DeleteSchema
ars_DeleteVUI ars_ExecuteProcess
ars_GetEscalation ars_GetFullTextInfo
ars_GetListGroup ars_GetListSQL ars_GetListUser ars_GetListRole
ars_GetListVUI 
ars_GetServerInfo ars_SetServerInfo
ars_GetEntryBLOB
ars_CreateActiveLink
ars_GetControlStructFields ars_GetVUI
ars_GetListContainer ars_GetContainer ars_DeleteContainer ars_SetServerPort
ars_SetLogging ars_SetSessionConfiguration ars_SetImpersonatedUser
ars_CreateField ars_SetField ars_CreateSchema ars_SetSchema ars_CreateVUI ars_SetVUI
ars_CreateContainer ars_SetContainer ars_CreateCharMenu ars_SetCharMenu
ars_SetActiveLink ars_CreateFilter ars_CreateEscalation ars_SetEscalation
$ars_errstr %ARServerStats %ars_errhash
ars_decodeStatusHistory ars_APIVersion ars_encodeStatusHistory
ars_BeginBulkEntryTransaction ars_EndBulkEntryTransaction
ars_Signal ars_GetTextForErrorMessage ars_DateToJulianDate
ars_GetListLicense ars_ValidateMultipleLicenses
ars_GetServerCharSet ars_GetClientCharSet
ars_GetAlertCount ars_RegisterForAlerts ars_DeregisterForAlerts ars_GetListAlertUser
ars_DecodeAlertMessage ars_CreateAlertEvent ars_VerifyUser
ars_GetListImage ars_GetImage ars_CreateImage ars_SetImage ars_DeleteImage

ARS.pm  view on Meta::CPAN


sub new {
	require 'ARS/OOform.pm';
	require 'ARS/OOmsgs.pm';
	require 'ARS/OOsup.pm';
	return newObject( @_ );
}


# ROUTINE
#   ars_simpleMenu(menuItems, prepend)
#
# DESCRIPTION
#   merges all sub-menus into a single level menu. good for web 
#   interfaces.
#
# RETURNS
#   array of menu items.

sub ars_simpleMenu {
    my($m) = shift;
    my($prepend) = shift;
    my(@m) = @$m;
    my(@ret, @submenu);
    my($name, $val);
    
    while (($name, $val, @m) = @m) {
	if (ref($val)) {
	    @submenu = ars_simpleMenu($val, $name);
	    @ret = (@ret, @submenu);
	} else {
	    if ($prepend) {
		@ret = (@ret, "$prepend/$name", $val);
	    } else {
		@ret = (@ret, $name, $val);
	    }
	}
    }
    @ret;

ARS.pm  view on Meta::CPAN


sub dumpHash {
	my $h = shift;
	foreach (keys %$h) {
		print "key: ", $_,"\n";
		print "val: ", $h->{$_},"\n";
		dumpHash($h->{$_}) if(ref($h->{$_}) eq "HASH");
	}
}	
	
# ars_GetCharMenuItems(ctrl, menuName, qualifier)
#  qual is optional. 
#    if it's specified:
#       menuType must be "query"
#       qualifier must compile against the form that the menu 
#       is written for.

sub ars_GetCharMenuItems {
	my ($ctrl, $menuName, $qual) = (shift, shift, shift);

	if(defined($qual)) {
		my $menu = ars_GetCharMenu($ctrl, $menuName);
		die "ars_GetCharMenuItems failed: $ARS::ars_errstr" 
		  unless defined($menu);
		die "ars_GetCharMenuItems failed: qualifier was specified, but menu is not a 'query' menu" 
		  if($menu->{'menuType'} ne "query");
		
		if(ref($qual) ne "ARQualifierStruct") {
			$qual = ars_LoadQualifier($ctrl, $menu->{'menuQuery'}{'schema'}, $qual);
		}
		return ars_ExpandCharMenu2($ctrl, $menuName, $qual);
	}
	return ars_ExpandCharMenu2($ctrl, $menuName);
}

sub ars_ExpandCharMenu {
	return ars_ExpandCharMenu2(@_);
}

# encodes status history from the same format
# as returned by ars_decodeStatusHistory()

sub ars_encodeStatusHistory {
	my @sh = ();
	while(my $hr = shift) {
		push @sh, $hr->{USER} ? "$hr->{TIME}\cD$hr->{USER}" : "";
	}

ARS.xs  view on Meta::CPAN

			FreeARServerInfoList(&serverInfo, FALSE);
			FreeARServerInfoRequestList(&requestList, FALSE);
		} else {
			(void) ARError_add( AR_RETURN_ERROR, AP_ERR_MALLOC);
		} 
	  }
	}


HV *
ars_GetCharMenu(ctrl,name)
	ARControlStruct *	ctrl
	char *			name
	CODE:
	{
	  unsigned int       refreshCode = 0;
	  ARCharMenuStruct   menuDefn;
	  char	            *helpText = CPNULL;
	  ARTimestamp	     timestamp;
	  ARAccessNameType	     owner;
	  ARAccessNameType	     lastChanged;
	  char		    *changeDiary = CPNULL;
	  ARStatusList	     status;
	  int                ret = 0, i = 0;
	  HV		    *menuDef = newHV();
	  /* SV		    *ref; */
	  ARDiaryList        diaryList;
	  ARPropList         objPropList;

	  (void) ARError_reset();
	  Zero(&status, 1,ARStatusList);
	  Zero(&objPropList, 1, ARPropList);
	  Zero(&menuDefn, 1, ARCharMenuStruct);
	  Zero(&timestamp, 1, ARTimestamp);
	  Zero(owner, 1, ARAccessNameType);
	  Zero(lastChanged, 1, ARAccessNameType);
	  Zero(&diaryList, 1, ARDiaryList);
	  RETVAL = newHV();
	  sv_2mortal( (SV*) RETVAL );
	  ret = ARGetCharMenu(ctrl, name, &refreshCode, &menuDefn, &helpText, 
			      &timestamp, owner, lastChanged, &changeDiary, 
			      &objPropList,
			      &status);
#ifdef PROFILE
	  ((ars_ctrl *)ctrl)->queries++;
#endif
	  if(!ARError( ret, status)) {
		hv_store(RETVAL,  "name", strlen("name") , newSVpv(name, 0), 0);
		if(helpText)
			hv_store(RETVAL,  "helpText", strlen("helpText") , newSVpv(helpText,0), 0);

ARS.xs  view on Meta::CPAN

	        if (changeDiary) {
			ret = ARDecodeDiary(ctrl, changeDiary, &diaryList, &status);
			if (!ARError(ret, status)) {
				hv_store(RETVAL,  "changeDiary", strlen("changeDiary") ,
					perl_ARList(ctrl, (ARList *)&diaryList,
					(ARS_fn)perl_diary,
					sizeof(ARDiaryStruct)), 0);
				FreeARDiaryList(&diaryList, FALSE);
			}
	        }
		for(i = 0; CharMenuTypeMap[i].number != TYPEMAP_LAST; i++) {
			if (CharMenuTypeMap[i].number == menuDefn.menuType)
				break;
		}
		hv_store(RETVAL,  "menuType", strlen("menuType") , 
			   /* PRE-1.68: newSViv(menuDefn.menuType) */
			newSVpv( CharMenuTypeMap[i].name, strlen(CharMenuTypeMap[i].name) )
			, 0);
		hv_store(RETVAL,  "refreshCode", strlen("refreshCode") , 
			perl_MenuRefreshCode2Str(ctrl, refreshCode), 0);
		switch(menuDefn.menuType) {
		case AR_CHAR_MENU_LIST:
			/* hv_store(menuDef,  "charMenuList", strlen("charMenuList") , 
				perl_ARCharMenuList(ctrl,&(menuDefn.u.menuList)), 0 );
			hv_store(RETVAL,  "menuList", strlen("menuList") , 
				newRV_noinc((SV *)menuDef), 0); */

			hv_store(RETVAL,  "menuList", strlen("menuList") , 
				perl_ARCharMenuList(ctrl,&(menuDefn.u.menuList)), 0);
			break;
		case AR_CHAR_MENU_QUERY:
			hv_store(menuDef,  "schema", strlen("schema") , 
				newSVpv(menuDefn.u.menuQuery.schema, 0), 0);
			hv_store(menuDef,  "server", strlen("server") , 
				newSVpv(menuDefn.u.menuQuery.server, 0), 0);
#if AR_EXPORT_VERSION >= 6
			{
				int lfn = 0;
				AV *a = newAV();

ARS.xs  view on Meta::CPAN

					newSVpv(menuDefn.u.menuDD.u.fieldDefn.schema, 0), 0);
				break;
			}
			hv_store(RETVAL,  "menuDD", strlen("menuDD") , 
				newRV_noinc((SV *)menuDef), 0);
			break;
# endif
#endif
		}
		FreeARPropList(&objPropList, FALSE);
		FreeARCharMenuStruct(&menuDefn, FALSE);
		if (helpText) {
		  	AP_FREE(helpText);
		}
		if (changeDiary) {
		  	AP_FREE(changeDiary);
		}
	  }else{
	  XSRETURN_UNDEF;
	  }
	}
	OUTPUT:
	RETVAL

SV *
ars_ExpandCharMenu2(ctrl,name,qual=NULL)
	ARControlStruct *	ctrl
	char *			name
	ARQualifierStruct *     qual
	CODE:
	{
		ARCharMenuStruct menuDefn;
		ARStatusList     status;
		int              ret;

		RETVAL = &PL_sv_undef;
		(void) ARError_reset();
		Zero(&menuDefn, 1, ARCharMenuStruct);
		Zero(&status, 1,ARStatusList);
		DBG( ("-> ARGetCharMenu\n") );
		ret = ARGetCharMenu(ctrl, name, NULL, &menuDefn, 
					NULL, NULL, NULL, NULL, NULL, 
#if AR_EXPORT_VERSION >= 5
			      		NULL,
#endif
			     		&status);
		DBG( ("<- ARGetCharMenu\n") );
#ifdef PROFILE
		((ars_ctrl *)ctrl)->queries++;
#endif
		if (! ARError(ret, status)) {
			DBG( ("-> perl_expandARCharMenuStruct\n") );
			RETVAL = perl_expandARCharMenuStruct(ctrl, 
							     &menuDefn);
			DBG( ("<- perl_expandARCharMenuStruct\n") );
			FreeARCharMenuStruct(&menuDefn, FALSE);
			DBG( ("after Free\n") );
		}
	}
	OUTPUT:
	RETVAL

HV *
ars_GetSchema(ctrl,name)
	ARControlStruct *	ctrl
	char *			name

ARS.xs  view on Meta::CPAN

	  ((ars_ctrl *)control)->queries++;
#endif
	  if (!ARError( ret,status)) {
	    for (i=0; i<nameList.numItems; i++)
	      XPUSHs(sv_2mortal(newSVpv(nameList.nameList[i], 0)));
	    FreeARNameList(&nameList,FALSE);
	  }
	}

void
ars_GetListCharMenu(control,changedsince=0)
	ARControlStruct *	control
	unsigned long		changedsince
	PPCODE:
	{
	  ARNameList   nameList;
	  ARStatusList status;
#if AR_EXPORT_VERSION >= 8L
          ARPropList   propList;
#endif
          ARNameList   schemaNameList;

ARS.xs  view on Meta::CPAN

          unsigned int i = 0;

	  (void) ARError_reset();
#if AR_EXPORT_VERSION >= 8L
	  Zero(&propList, 1, ARPropList);
#endif
	  Zero(&status, 1, ARStatusList);
	  Zero(&schemaNameList, 1, ARNameList);
	  Zero(&actLinkNameList, 1, ARNameList);
	  Zero(&nameList, 1, ARNameList);
	  ret = ARGetListCharMenu(control,changedsince,
#if AR_EXPORT_VERSION >= 8L
                                  &schemaNameList, &actLinkNameList, &propList,
#endif
                                  &nameList,&status);
#ifdef PROFILE
	  ((ars_ctrl *)control)->queries++;
#endif

	  if (!ARError( ret,status)) {
	    for (i=0; i<nameList.numItems; i++)

ARS.xs  view on Meta::CPAN

	  }
#else /* 2.x */
	  (void) ARError_add( AR_RETURN_ERROR, AP_ERR_DEPRECATED, "DeleteVUI() is only available in ARS3.x");
#endif
	}
	OUTPUT:
	RETVAL


int
ars_DeleteCharMenu(ctrl, name)
	ARControlStruct *	ctrl
	char *			name
	CODE:
	{
	  char        *objectModificationLogLabel = NULL;
	  ARStatusList status;
	  int          ret = 0;

	  (void) ARError_reset();
	  Zero(&status, 1,ARStatusList);
	  RETVAL = 0;
	  if(ctrl && name && *name) {
		ret = ARDeleteCharMenu(ctrl, name, 
#if AR_EXPORT_VERSION >= 8L
                                       0,
#endif
#if AR_CURRENT_API_VERSION >= 17
                                       objectModificationLogLabel,
#endif
                                       &status);
#ifdef PROFILE
	        ((ars_ctrl *)ctrl)->queries++;
#endif

ARS.xs  view on Meta::CPAN

	  RETVAL = newHV();
#endif

	}
	OUTPUT:
	RETVAL



int
ars_CreateCharMenu( ctrl, menuDefRef, removeFlag=TRUE )
	ARControlStruct *	ctrl
	SV * menuDefRef
	ARBoolean removeFlag;

	CODE:
	{
#if AR_EXPORT_VERSION >= 6L
		ARNameType name;
		int ret = 0, rv = 0;
		unsigned int refreshCode;
		char *refreshCodeStr = NULL;
		char *menuTypeStr = NULL;
		ARCharMenuStruct arMenuDef;
		char *helpText = NULL;
		ARAccessNameType owner;
		char *changeDiary = NULL;
		ARPropList objPropList;
	    char *objectModificationLogLabel = NULL;
		ARStatusList status;
		HV *menuDef = NULL;
		SV **pSvTemp;

		RETVAL = 0; /* assume error */
		(void) ARError_reset();
		Zero(&arMenuDef, 1,ARCharMenuStruct);
		Zero(owner, 1,ARAccessNameType);
		Zero(&objPropList, 1,ARPropList);
		Zero(&status, 1,ARStatusList);

		if( SvROK(menuDefRef) && SvTYPE(SvRV(menuDefRef)) == SVt_PVHV ){
			menuDef = (HV*) SvRV(menuDefRef);
		}else{
			croak("usage: ars_CreateCharMenu(...)");
		}

		rv += strcpyHVal( menuDef, "name", name, AR_MAX_NAME_SIZE );

		/* rv += uintcpyHVal( menuDef, "refreshCode", &type ); */
		rv += strmakHVal( menuDef, "refreshCode", &refreshCodeStr );
		refreshCode = revTypeName( (TypeMapStruct*)CharMenuRefreshCodeTypeMap, refreshCodeStr );
		if( refreshCode == TYPEMAP_LAST ){
			ARError_add(AR_RETURN_ERROR, AP_ERR_GENERAL,
					"ars_CreateCharMenu: refreshCode key invalid. key follows:");
			ARError_add(AR_RETURN_WARNING, AP_ERR_CONTINUE,
					refreshCodeStr ? refreshCodeStr : "[key null]" );
		}
		if( refreshCodeStr != NULL ){  AP_FREE(refreshCodeStr);  }

		rv += strmakHVal( menuDef, "menuType", &menuTypeStr );
		arMenuDef.menuType = revTypeName( (TypeMapStruct*)CharMenuTypeMap, menuTypeStr );
		if( arMenuDef.menuType == TYPEMAP_LAST ){
			ARError_add(AR_RETURN_ERROR, AP_ERR_GENERAL,
					"ars_CreateCharMenu: menuType key invalid. key follows:");
			ARError_add(AR_RETURN_WARNING, AP_ERR_CONTINUE,
					menuTypeStr ? menuTypeStr : "[key null]" );
		}
		if( menuTypeStr != NULL ){  AP_FREE(menuTypeStr);  }

		switch( arMenuDef.menuType ){
		case AR_CHAR_MENU_LIST:
			pSvTemp = hv_fetch( menuDef, "menuList", strlen("menuList") , 0 );
			if( pSvTemp && *pSvTemp && SvTYPE(*pSvTemp) != SVt_NULL ){
				rv += rev_ARCharMenuList( ctrl, menuDef, "menuList", &(arMenuDef.u.menuList) );
			}
			break;
		case AR_CHAR_MENU_QUERY:
			pSvTemp = hv_fetch( menuDef, "menuQuery", strlen("menuQuery") , 0 );
			if( pSvTemp && *pSvTemp && SvTYPE(*pSvTemp) != SVt_NULL ){
				rv += rev_ARCharMenuQueryStruct( ctrl, menuDef, "menuQuery", &(arMenuDef.u.menuQuery) );
			}
			break;
		case AR_CHAR_MENU_FILE:
			pSvTemp = hv_fetch( menuDef, "menuFile", strlen("menuFile") , 0 );
			if( pSvTemp && *pSvTemp && SvTYPE(*pSvTemp) != SVt_NULL ){
				rv += rev_ARCharMenuFileStruct( ctrl, menuDef, "menuFile", &(arMenuDef.u.menuFile) );
			}
			break;
		case AR_CHAR_MENU_SQL:
			pSvTemp = hv_fetch( menuDef, "menuSQL", strlen("menuSQL") , 0 );
			if( pSvTemp && *pSvTemp && SvTYPE(*pSvTemp) != SVt_NULL ){
				rv += rev_ARCharMenuSQLStruct( ctrl, menuDef, "menuSQL", &(arMenuDef.u.menuSQL) );
			}
			break;
		case AR_CHAR_MENU_SS:
			pSvTemp = hv_fetch( menuDef, "menuSS", strlen("menuSS") , 0 );
			if( pSvTemp && *pSvTemp && SvTYPE(*pSvTemp) != SVt_NULL ){
				rv += rev_ARCharMenuSSStruct( ctrl, menuDef, "menuSS", &(arMenuDef.u.menuSS) );
			}
			break;
		case AR_CHAR_MENU_DATA_DICTIONARY:
			pSvTemp = hv_fetch( menuDef, "menuDD", strlen("menuDD") , 0 );
			if( pSvTemp && *pSvTemp && SvTYPE(*pSvTemp) != SVt_NULL ){
				rv += rev_ARCharMenuDDStruct( ctrl, menuDef, "menuDD", &(arMenuDef.u.menuDD) );
			}
			break;
		}

		objPropList.numItems = 0;
		objPropList.props = NULL;
		pSvTemp = hv_fetch( menuDef, "objPropList", strlen("objPropList") , 0 );
		if( pSvTemp && *pSvTemp && SvTYPE(*pSvTemp) != SVt_NULL ){
			rv += rev_ARPropList( ctrl, menuDef, "objPropList", &objPropList );
		}

ARS.xs  view on Meta::CPAN

			rv += strmakHVal( menuDef, "helpText", &helpText ); 
		}
		if( hv_exists(menuDef,"owner",5) ){
			rv += strcpyHVal( menuDef, "owner", owner, AR_MAX_ACCESS_NAME_SIZE ); 
		}
		if( hv_exists(menuDef,"changeDiary",11) ){
			rv += strmakHVal( menuDef, "changeDiary", &changeDiary );
		}

		if( rv == 0 ){
			ret = ARCreateCharMenu( ctrl,
				name,
				refreshCode,
				&arMenuDef,
				helpText,
				owner,
				changeDiary,
				&objPropList,
#if AR_CURRENT_API_VERSION >= 17
			    objectModificationLogLabel,
#endif
				&status );

			RETVAL = ARError(ret,status) ? 0 : 1;

ARS.xs  view on Meta::CPAN

			ARError_add( AR_RETURN_ERROR, AP_ERR_PREREVFAIL);
			RETVAL = 0;
		}

	    if( helpText != NULL ){
			AP_FREE( helpText );
		}
	    if( changeDiary != NULL ){
			AP_FREE( changeDiary );
		}
		FreeARCharMenuStruct( &arMenuDef, FALSE );
		FreeARPropList( &objPropList, FALSE );
#else /* < 5.0 */
	  XPUSHs(sv_2mortal(newSViv(0))); /* ERR */
	  (void) ARError_add( AR_RETURN_ERROR, AP_ERR_DEPRECATED, 
			"ARSperl supports CreateCharMenu() only for ARSystem >= 5.0");
      RETVAL = AR_RETURN_ERROR;
#endif
	}
	OUTPUT:
	RETVAL




int
ars_SetCharMenu( ctrl, name, menuDefRef, removeFlag=TRUE )
	ARControlStruct *	ctrl
	ARNameType name
	SV * menuDefRef
	ARBoolean removeFlag;

	CODE:
	{
#if AR_EXPORT_VERSION >= 6L
		int ret = 0, rv = 0;
		ARNameType newName;
		char *newNamePtr = NULL;
		unsigned int refreshCode;
		unsigned int *refreshCodePtr = NULL;
		char *refreshCodeStr = NULL;
		char *menuTypeStr = NULL;
		ARCharMenuStruct *arMenuDef = NULL;
		char *helpText = NULL;
		ARAccessNameType owner;
		char *changeDiary = NULL;
		ARPropList *objPropList = NULL;
		char *objectModificationLogLabel = NULL;
		ARStatusList status;
		HV *menuDef = NULL;
		SV **pSvTemp;

		RETVAL = 0; /* assume error */
		(void) ARError_reset();
		Zero(owner, 1,ARAccessNameType);
		Zero(&status, 1,ARStatusList);

		if( SvROK(menuDefRef) && SvTYPE(SvRV(menuDefRef)) == SVt_PVHV ){
			menuDef = (HV*) SvRV(menuDefRef);
		}else{
			croak("usage: ars_SetCharMenu(...)");
		}

		if( hv_exists(menuDef,"name",4) ){
			rv += strcpyHVal( menuDef, "name", newName, AR_MAX_NAME_SIZE ); 
			newNamePtr = newName;
		}
		
		if( hv_exists(menuDef,"refreshCode",4) ){
			/* rv += uintcpyHVal( menuDef, "refreshCode", &refreshCode ); */

			rv += strmakHVal( menuDef, "refreshCode", &refreshCodeStr );
			refreshCode = revTypeName( (TypeMapStruct*)CharMenuRefreshCodeTypeMap, refreshCodeStr );
			if( refreshCode == TYPEMAP_LAST ){
				ARError_add(AR_RETURN_ERROR, AP_ERR_GENERAL,
						"ars_CreateCharMenu: refreshCode key invalid. key follows:");
				ARError_add(AR_RETURN_WARNING, AP_ERR_CONTINUE,
						refreshCodeStr ? refreshCodeStr : "[key null]" );
			}
			if( refreshCodeStr != NULL ){  AP_FREE(refreshCodeStr);  }

			refreshCodePtr = &refreshCode;
		}

		if( hv_exists(menuDef,"menuType",4) ){
			/* rv += uintcpyHVal( menuDef, "menuType", &menuType ); */
			arMenuDef = (ARCharMenuStruct*) MALLOCNN( sizeof(ARCharMenuStruct) );

			rv += strmakHVal( menuDef, "menuType", &menuTypeStr );
			arMenuDef->menuType = revTypeName( (TypeMapStruct*)CharMenuTypeMap, menuTypeStr );
			if( arMenuDef->menuType == TYPEMAP_LAST ){
				ARError_add(AR_RETURN_ERROR, AP_ERR_GENERAL,
						"ars_CreateCharMenu: menuType key invalid. key follows:");
				ARError_add(AR_RETURN_WARNING, AP_ERR_CONTINUE,
						menuTypeStr ? menuTypeStr : "[key null]" );
			}
			if( menuTypeStr != NULL ){  AP_FREE(menuTypeStr);  }

			switch( arMenuDef->menuType ){
			case AR_CHAR_MENU_LIST:
				pSvTemp = hv_fetch( menuDef, "menuList", strlen("menuList") , 0 );
				if( pSvTemp && *pSvTemp && SvTYPE(*pSvTemp) != SVt_NULL ){
					rv += rev_ARCharMenuList( ctrl, menuDef, "menuList", &(arMenuDef->u.menuList) );
				}
				break;
			case AR_CHAR_MENU_QUERY:
				pSvTemp = hv_fetch( menuDef, "menuQuery", strlen("menuQuery") , 0 );
				if( pSvTemp && *pSvTemp && SvTYPE(*pSvTemp) != SVt_NULL ){
					rv += rev_ARCharMenuQueryStruct( ctrl, menuDef, "menuQuery", &(arMenuDef->u.menuQuery) );
				}
				break;
			case AR_CHAR_MENU_FILE:
				pSvTemp = hv_fetch( menuDef, "menuFile", strlen("menuFile") , 0 );
				if( pSvTemp && *pSvTemp && SvTYPE(*pSvTemp) != SVt_NULL ){
					rv += rev_ARCharMenuFileStruct( ctrl, menuDef, "menuFile", &(arMenuDef->u.menuFile) );
				}
				break;
			case AR_CHAR_MENU_SQL:
				pSvTemp = hv_fetch( menuDef, "menuSQL", strlen("menuSQL") , 0 );
				if( pSvTemp && *pSvTemp && SvTYPE(*pSvTemp) != SVt_NULL ){
					rv += rev_ARCharMenuSQLStruct( ctrl, menuDef, "menuSQL", &(arMenuDef->u.menuSQL) );
				}
				break;
			case AR_CHAR_MENU_SS:
				pSvTemp = hv_fetch( menuDef, "menuSS", strlen("menuSS") , 0 );
				if( pSvTemp && *pSvTemp && SvTYPE(*pSvTemp) != SVt_NULL ){
					rv += rev_ARCharMenuSSStruct( ctrl, menuDef, "menuSS", &(arMenuDef->u.menuSS) );
				}
				break;
			case AR_CHAR_MENU_DATA_DICTIONARY:
				pSvTemp = hv_fetch( menuDef, "menuDD", strlen("menuDD") , 0 );
				if( pSvTemp && *pSvTemp && SvTYPE(*pSvTemp) != SVt_NULL ){
					rv += rev_ARCharMenuDDStruct( ctrl, menuDef, "menuDD", &(arMenuDef->u.menuDD) );
				}
				break;
			}
		}

		pSvTemp = hv_fetch( menuDef, "objPropList", strlen("objPropList") , 0 );
		if( pSvTemp && *pSvTemp && SvTYPE(*pSvTemp) != SVt_NULL ){
			objPropList = (ARPropList*) MALLOCNN( sizeof(ARPropList) );
			rv += rev_ARPropList( ctrl, menuDef, "objPropList", objPropList );
		}

ARS.xs  view on Meta::CPAN

			rv += strmakHVal( menuDef, "helpText", &helpText ); 
		}
		if( hv_exists(menuDef,"owner",5) ){
			rv += strcpyHVal( menuDef, "owner", owner, AR_MAX_ACCESS_NAME_SIZE ); 
		}
		if( hv_exists(menuDef,"changeDiary",11) ){
			rv += strmakHVal( menuDef, "changeDiary", &changeDiary );
		}

		if( rv == 0 ){
			ret = ARSetCharMenu( ctrl,
				name,
				newNamePtr,
				refreshCodePtr,
				arMenuDef,
				helpText,
				owner,
				changeDiary,
				objPropList,
#if AR_CURRENT_API_VERSION >= 17
			    objectModificationLogLabel,
#endif
				&status );

			RETVAL = ARError(ret,status) ? 0 : 1;

ARS.xs  view on Meta::CPAN

			ARError_add( AR_RETURN_ERROR, AP_ERR_PREREVFAIL);
			RETVAL = 0;
		}

	    if( helpText != NULL ){
			AP_FREE( helpText );
		}
	    if( changeDiary != NULL ){
			AP_FREE( changeDiary );
		}
		if( arMenuDef != NULL ){
			FreeARCharMenuStruct( arMenuDef, TRUE );
		}
		if( objPropList != NULL ){
			FreeARPropList( objPropList, TRUE );
		}
#else /* < 5.0 */
	  XPUSHs(sv_2mortal(newSViv(0))); /* ERR */
	  (void) ARError_add( AR_RETURN_ERROR, AP_ERR_DEPRECATED, 
			"ARSperl supports SetCharMenu() only for ARSystem >= 5.0");
      RETVAL = AR_RETURN_ERROR;
#endif
	}
	OUTPUT:
	RETVAL


#define STR_TEMP_SIZE  30

int

CHANGES  view on Meta::CPAN

 (TS)   fixed rev_ARArchiveInfo Struct, moved function from supportrev_generated.c to supportrev.c

 (TS)   changed $ARS_LIBS variable for 7.0 Unix API in Makefile.pl (-licuuc -> -licuucbmc)


Released: 03/12/2007 Version: 1.90


 (TS)   added missing ARError_reset() to ars_GetListVUI

 (TS)   added ars_CreateCharMenu, ars_SetCharMenu

 (TS)   added handling of case AR_CHAR_MENU_LIST in ars_GetCharMenu

 (TS)   changed handling of qualifier struct in ars_GetCharMenu, case AR_CHAR_MENU_QUERY

 (TS)   corrected function signature for ars_SetField, ars_CreateContainer

 (TS)   bugfix in ars_GetCharMenu (incorrect array length for "labelFields", "labelIndex")

 (TS)   added ars_SetImpersonatedUser

 (TS)   bugfix in ARError (support.c, memory violation if appendedText == NULL)

 (TS)   ars_SetLogging: changed declaration "int len" to "STRLEN len" because of 
        compilation problems on Solaris

 (TS)   added ars_BeginBulkEntryTransaction, ars_EndBulkEntryTransaction

CHANGES  view on Meta::CPAN

(JCM)   memory leak fixed in ars_Export

(JCM)   memory leak fixed in ars_GetListEntry wrt to join forms

(JCM)   memory leak fixed in QualifierStructPtr destructor

(JCM)   memory leak fixed in ControlStruct destructor

(JCM)   various other memory related cleanups

(JCM)   bad/NULL ref fixed in ExpandCharMenu

(JCM)   added new params to ars_Login: lang, authString, tcpport, rpcnumber

(JCM)   added new rv's to ars_GetControlStructFields: lang, authString

(JCM)   updated example and test scripts 

(JCM)   added Alert functions (replaces NT/Notifier functions)

(JCM) ! 5.x (5.0.1, 5.1, 5.1.1) integration 

CHANGES  view on Meta::CPAN

   		
   		ars_NT*()   [notifier functions]
        
        functions whose parameters have changed:
   		
   		ars_GetListEntry() 
   		ars_GetListEntryWithFields()
        
        functions whose return values have changed:
   		
   		ars_GetCharMenu()
        


Released: 11/13/2002 Version: 1.74


(GDF)   added ars_GetMultipleEntries, ars_GetListEntryWithFields

(GDF)   remove unused num_entries parameter from ARGetListEntry

CHANGES  view on Meta::CPAN

        use them _if you compile against 4.5 or later libraries_
   		
   		ars_GetActiveLink 
   		ars_GetFilter 
   		ars_GetEscalation 
   		ars_CreateActiveLink 
        
        see the documentation on the return values of these functions
        for details on what has changed.

(JCM) ! changed ars_GetCharMenu so that {'menuType'} is returned
        as a string (decoded) instead of an integer.

(JCM) ! added a parameter to ars_Import which will require that existing
        scripts be updated. see documentation for details.

(JCM)   added patch submitted by Geoff Endresen which enabled decoding
        of push fields actions in GetFilter()

(JCM)   enhanced Makefile.PL to be more intelligent when h2ph fails or
        doesnt exist

CHANGES  view on Meta::CPAN

(JCM)   fixed bug in macroParm decoding. {D.J.Adams at soton.ac.uk}

(JCM)   fixed bug when decoding results of GetFilter/GetActiveLink
        in regards to set fields actions: values assigned to
        diary fields were not being interpretted correctly.
        {D.J.Adams at soton.ac.uk}

(JCM)   patched perl_BuildEntryIdList to make it more robust
        (Ulrich Pfeifer {pfeifer at wait.de})

(JCM)   patched ars_GetCharMenu for bug "GetCharMenu doesn't
        return a qualifier for query menus" {D.J.Adams at soton.ac.uk}

(JCM)   fixed dup_FieldValueOrArith to support decoding of
        query style menus. 


Released: 02/09/98 Version: 1.54


(JCM)   fixed bug in ars_EncodeDiary()

CHANGES  view on Meta::CPAN



(JCM)   fixed some minor errors in doc


Released: 11/19/97 Version: 1.5206


(JCM)   added ars_GetVUI to the ARS.pm exports line.

(JCM)   added refreshCode to GetCharMenu hash

(JCM)   fixed bug in groupList value change in 1.5205


Released: 11/04/97 Version: 1.5205


(JCM)   updated the groupList value returned by GetSchema()
        so that it contains the correct key words.

CHANGES  view on Meta::CPAN

Released: 10/06/97 Version: 1.50


(JCM)   removed ars_errstr from C code. replaced with ars_errhash.
        modified ARS.pm to refer to hash when $ars_errstr is 
        accessed. $ars_errstr no longer tie'd to main:: package.

(JCM)   bug fix (Sid Van den Heede) "affecting getting of
        displayInstanceList"

(JCM)   bug fix (James LewisMoss) for ars_GetCharMenu()

(JCM)   bug fix (Ian Flanigan) for perl_ARIndexStruct()

(JCM)   modified GetListEntry(), GetEntry(), SetEntry() and 
        DeleteEntry() to make operations on join schemas 
        transparent.

(JCM)   added a ARVerifyUser call to ars_Login so that
        ars_Login() || die() will work as one would expect it to.

CHANGES  view on Meta::CPAN


Released: 02/10/97 Version: 1.32beta


(JWM)   3.0 integration


Released: 11/11/96 Version: 1.31


(JCM)   minor stuff: added an ifndef in the GetCharMenu routine
        for ars 2.0 users. 2.0 doesnt support SQL menu constructions.


Released: 11/11/96 Version: 1.3


(JWM)   undef works in setEntry now.

(JWM)   added ars_Import to complement ars_Export

(JCM)   Profiling code added to keep track of number of
        queries made.

(JWM)   Field caching code added to make some of the functions
        more efficient.

(JCM)   New functions: ars_GetFilter(), ars_GetCharMenu(), 
        ars_GetServerStatistics

(JWM)   Internal GetField call now caches results to minimize
        number of queries made.

(JCM)   Examples of new functions. 

(JCM)   "WhoUsesIt.pl" utility


MANIFEST  view on Meta::CPAN

html/WhoUsesIt.html
html/DelUsersFromGroup.html
html/index.html
html/AddUsersToGroup.html
html/copying.html
html/arsperl-logo.gif
html/install.html
html/manual/ds_getvui_hash.html
html/manual/ars_encodeStatusHistory.html
html/manual/ars_GetListCharMenu.html
html/manual/ds_charmenu_file_hash.html
html/manual/OO/index.html
html/manual/OO/form.html
html/manual/OO/connection.html
html/manual/skel.html
html/manual/ars_SetImpersonatedUser.html
html/manual/ars_GetControlStructFields.html
html/manual/ds_al.html
html/manual/ars_GetListEscalation.html
html/manual/ars_MergeEntry.html
html/manual/ars_CreateFilter.html
html/manual/ds_ars_err_hash.html
html/manual/ds_getfilter_hash.html
html/manual/ars_GetFieldByName.html
html/manual/ars_GetContainer.html
html/manual/ars_DeleteImage.html
html/manual/ars_GetServerCharSet.html
html/manual/ars_GetListGroup.html
html/manual/ars_CreateCharMenu.html
html/manual/ars_DecodeAlertMessage.html
html/manual/ds_enumitemstruct.html
html/manual/ars_GetCharMenu.html
html/manual/ars_GetEntry.html
html/manual/ds_schematype.html
html/manual/ars_simpleMenu.html
html/manual/ars_CreateSchema.html
html/manual/ars_SetServerInfo.html
html/manual/ars_GetServerInfo.html
html/manual/ds_getcharmenu_hash.html
html/manual/ds_charmenu_sql_hash.html
html/manual/ars_CreateEntry.html
html/manual/ds_bytelist_hash.html
html/manual/ars_GetMultipleEntries.html
html/manual/ars_ExecuteProcess.html
html/manual/ds_msgstruct_hash.html

MANIFEST  view on Meta::CPAN

html/manual/ars_SetEscalation.html
html/manual/AR_HOUR.html
html/manual/ars_GetListServer.html
html/manual/ars_GetField.html
html/manual/ds_mps.html
html/manual/ars_Export.html
html/manual/ds_charmenu_query_hash.html
html/manual/ars_DeleteActiveLink.html
html/manual/ars_DeleteVUI.html
html/manual/ars_GetEntryBLOB.html
html/manual/ars_SetCharMenu.html
html/manual/ds_vs.html
html/manual/ars_SetSchema.html
html/manual/ars_DeleteContainer.html
html/manual/ds_ds.html
html/manual/ds_enumquerystruct.html
html/manual/ars_SetEntry.html
html/manual/ars_GetFieldTable.html
html/manual/ds_getescalation_hash.html
html/manual/ars_CreateActiveLink.html
html/manual/ars_SetField.html

MANIFEST  view on Meta::CPAN

html/manual/ars_SetSessionConfiguration.html
html/manual/ars_perl_qualifier.html
html/manual/ds_elfs.html
html/manual/ars_APIVersion.html
html/manual/ds_container_info.html
html/manual/ars_CreateContainer.html
html/manual/ars_GetFilter.html
html/manual/ds_is.html
html/manual/ds_field_hash.html
html/manual/variables.html
html/manual/ars_GetCharMenuItems.html
html/manual/ds_diaryentry_hash.html
html/manual/ds_getlistcontainer_hash.html
html/manual/ars_Logoff.html
html/manual/ds_fls.html
html/manual/ars_GetServerStatistics.html
html/manual/ars_CreateEscalation.html
html/manual/ars_GetEscalation.html
html/manual/ars_EncodeDiary.html
html/manual/ds_fncas.html
html/manual/ars_EndBulkEntryTransaction.html

MANIFEST  view on Meta::CPAN

html/manual/ars_Login.html
html/manual/ds_alms.html
html/manual/ars_GetImage.html
html/manual/ds_as.html
html/manual/ars_GetListFilter.html
html/manual/ars_GetClientCharSet.html
html/manual/ars_GetListActiveLink.html
html/manual/ars_GetListUser.html
html/manual/ds_prop_hash.html
html/manual/ars_decodeStatusHistory.html
html/manual/ars_DeleteCharMenu.html
html/manual/ars_Import.html
html/manual/ars_RegisterForAlerts.html
html/changes.html
html/debug.html
html/DumpSetup.html
Makefile
t/33setcontainer.t
t/40createcharmenu.t
t/01import.t
t/20merge.t

MANIFEST  view on Meta::CPAN

infra/c4asp.bat
Artistic
example/ars_GetServerInfo.pl
example/ars_QualDecode.pl
example/ars_MergeEntry.pl
example/ars_ExecuteProcess.pl
example/Dump_Users_OO.pl
example/Dump_Users.pl
example/DelUsersFromGroup.pl
example/getCharSets.pl
example/GetCharMenu.pl
example/ars_CopyActiveLink.pl
example/ars_GetEntryBLOB.pl
example/ars_GetListEntry.pl
example/getAttachment-OO.pl
example/00-ReadMe
example/ars_GetListContainer.pl
example/Show_ALink.pl
example/ars_GetListEntryWithMultiSchemaFields.pl
example/GetFilter.pl
example/Show_Menu.pl
example/Dump_Setup.pl
example/ars_GetListGroup.pl
example/attachTest.pl
example/ars_GetControlStructFields.pl
example/ars_decodeStatusHistory.pl
example/ars_GetListSQL.pl
example/ars_DateToJulianDate.pl
example/ars_SetServerInfo.pl
example/AddUsersToGroup.pl
example/WhoUsesIt.pl

RELNOTES  view on Meta::CPAN


	Function			What's Changed
	--------------------------------------------------------------
	ars_GetListEntry		additional required  parameter
	ars_GetListEntryWithFields	additional required  parameter

The following functions have altered return values.

	Function			What's Changed
	--------------------------------------------------------------
	ars_GetCharMenu			for query menus, the 
					labelField is no longer
					a scalar. it's now an
					array ref.

	
1.68 Notes
----------

The 1.68 release includes ARS 4.5 integration. When compiling against ARS
4.5 APIs, the following data structures will change which _might_ break

RELNOTES  view on Meta::CPAN

be updated. See the documentation on this function for details.


When compiling against an API revision prior to ARS4.5, the hashes returned 
by the above functions include a "schema" key which denotes which schema
the object is "attached" to. As of 4.5, it is possible to attach an object
to multiple schemas. The hash key has changed from a scalar (string) to an
array of (one or more) scalars and the name of the key has changed to
"schemaList". 

On an unrelated note, the ars_GetCharMenu() call now decodes the "menuType" 
hash key. Previously it was returned as a number (a raw enumeration value)
and you had to figure out on your own what that number meant. Now we decode 
it so you get a string telling you what sort of menu it is. This change was 
made to bring this function inline with how the other ARSperl functions
operate. Again, you might need to update some of your scripts. This change
is true regardless of what revision of the ARS API you compile against.

1.62 Notes
----------

RELNOTES  view on Meta::CPAN

the number of queries your script makes against the server. You
can then access this information using the ars_GetProfileInfo() call.

We send this information to syslog() automatically at the end of
each script and then process the syslog file later on to keep stats
on our API scripts. In this fashion, we can quickly determine which
scripts are triggered the most, and which make the most queries. We
can then concentrate out optimization efforts on those particular
API scripts.

In addition, a few new functions were added (GetFilter, GetCharMenu and
GetServerStatistics, ars_Export). The first two are used by the WhoUsesIt.pl 
utility. This utility (found in the "examples" directory) is handy for
locating which filter or menu is referencing a particular file, or 
seeing exactly what filters a particular schema uses.. etc. This 
cuts down the amount of time it takes to figure out a poorly documented
system (what? poor documentation? not us!! :)

The GetServerStatistics function was added to provide a simpler method
for checking server health. I might provide a server analysis tool 
built around this function in a future release. 

StructDef.pl  view on Meta::CPAN

	},
	match => {
		_type => 'unsigned int',
		_data => 'p->qbeMatchOperation',
		_map  => {
			AR_QBE_MATCH_ANYWHERE => 'anywhere',
			AR_QBE_MATCH_LEADING  => 'leading',
			AR_QBE_MATCH_EQUAL    => 'equal',
		},
	},
	charMenu => {
		_type => 'ARNameType',
		_data => 'p->charMenu',
	},
	pattern => {
		_type => 'char*',
		_data => 'p->pattern',
	},
	fullTextOptions => {
		_type => 'unsigned int',
		_data => 'p->fullTextOptions',
		_map  => {
			AR_FULLTEXT_OPTIONS_NONE    => 'none',

StructDef.pl  view on Meta::CPAN

		_data => 'p->status',
	},
},
ARStatusList => {
	_num  => 'p->numItems',
	_list => 'p->statusList',
	_type => 'ARStatusStruct',
},


ARCharMenuList => {
	_num  => 'p->numItems',
	_list => 'p->charMenuList',
	_type => 'ARCharMenuItemStruct',
},
ARCharMenuQueryStruct => {
	schema => {
		_type => 'ARNameType',
		_data => 'p->schema',
	},
	server => {
		_type => 'char[AR_MAX_SERVER_SIZE+1]',
		_data => 'p->server',
	},
	labelField => {
		_type => 'ARInternalId[AR_MAX_LEVELS_DYNAMIC_MENU]',

StructDef.pl  view on Meta::CPAN

	},
	sortOnLabel => {
		_type => 'ARBoolean',
		_data => 'p->sortOnLabel',
	},
	qualifier => {
		_type => 'ARQualifierStruct',
		_data => 'p->qualifier',
	},
},
ARCharMenuFileStruct => {
	fileLocation => {
		_type => 'unsigned int',
		_data => 'p->fileLocation',
	},
	filename => {
		_type => 'char *',
		_data => 'p->filename',
	},
},
ARCharMenuSQLStruct => {
	server => {
		_type => 'char[AR_MAX_SERVER_SIZE+1]',
		_data => 'p->server',
	},
	labelIndex => {
		_type => 'int[AR_MAX_LEVELS_DYNAMIC_MENU]',
		_data => 'p->labelIndex',
	},
	valueIndex => {
		_type => 'int',
		_data => 'p->valueIndex',
	},
	sqlCommand => {
		_type => 'char *',
		_data => 'p->sqlCommand',
	},
},
ARCharMenuSSStruct => {
	menuName => {
		_type => 'ARNameType',
		_data => 'p->menuName',
	},
	keywordList => {
		_type => 'ARFieldValueList',
		_data => 'p->keywordList',
	},
	parameterList => {
		_type => 'ARFieldValueList',

StructDef.pl  view on Meta::CPAN

	},
	server => {
		_type => 'char *',
		_data => 'p->server',
	},
	schema => {
		_type => 'char *',
		_data => 'p->schema',
	},
},
ARCharMenuDDStruct => {
	server => {
		_type => 'char[AR_MAX_SERVER_SIZE+1]',
		_data => 'p->server',
	},
	nameType => {
		_type => 'unsigned int',
		_data => 'p->nameType',
	},
	valueFormat => {
		_type => 'unsigned int',
		_data => 'p->valueFormat',
	},
	structType => {
		_type => 'unsigned int',
		_data => 'p->structType',
	},
	_switch  => 'p->structType',
	_map => 'structType',
	_case    => {
		AR_CHAR_MENU_DD_FORM => {
			_type => 'ARCharMenuDDFormStruct',
			_data => 'p->u.formDefn',
		},
		AR_CHAR_MENU_DD_FIELD => {
			_type => 'ARCharMenuDDFieldStruct',
			_data => 'p->u.fieldDefn',
		},
	},
},
ARCharMenuDDFormStruct => {
	schemaType => {
		_type => 'unsigned int',
		_data => 'p->schemaType',
	},
	includeHidden => {
		_type => 'ARBoolean',
		_data => 'p->includeHidden',
		_map  => {
			FALSE => 'false',
			TRUE  => 'true',
		},
	},
},
ARCharMenuDDFieldStruct => {
	fieldType => {
		_type => 'unsigned int',
		_data => 'p->fieldType',
	},
	schema => {
		_type => 'ARNameType',
		_data => 'p->schema',
	},
},
ARQualifierList => {

StructDef.pl  view on Meta::CPAN

#
#	query => {
#		_type => 'ARQualifierStruct',
#		_data => 'p->query',
#	},
#	archiveFrom => {
#		_type => 'ARNameType',
#		_data => 'p->archiveFrom',
#	},
#},
#ARCharMenuItemStruct => {
#	menuLabel => {
#		_type => 'ARNameType',
#		_data => 'p->menuLabel',
#	},
#	_switch  => 'p->menuType',
#	_map => {
#		AR_MENU_TYPE_VALUE  => 'menuValue',
#		AR_MENU_TYPE_MENU   => 'childMenu',
#	},
#	_case    => {
#		AR_MENU_TYPE_VALUE => {
#			menuValue => {
#				_type => 'char *',
#				_data => 'p->u.menuValue',
#			},
#		},
#		AR_MENU_TYPE_MENU => {
#			childMenu => {
##				_type => 'ARCharMenuStruct*',
##				_data => 'p->u.childMenu',
#				_type => 'ARCharMenuList',
#				_data => 'p->u.childMenu->u.menuList',
#			},
#		},
#	},
#},
#ARCharMenuStruct => {
#	_switch  => 'p->menuType',
#	_map => 'CharMenuTypeMap',
#	_case    => {
#		AR_CHAR_MENU_LIST => {
#			_type => 'ARCharMenuList',
#			_data => 'p->u.menuList',
#		},
#		AR_CHAR_MENU_QUERY => {
#			_type => 'ARCharMenuQueryStruct',
#			_data => 'p->u.menuQuery',
#		},
#		AR_CHAR_MENU_FILE => {
#			_type => 'ARCharMenuFileStruct',
#			_data => 'p->u.menuFile',
#		},
#		AR_CHAR_MENU_SQL => {
#			_type => 'ARCharMenuSQLStruct',
#			_data => 'p->u.menuSQL',
#		},
#		AR_CHAR_MENU_SS => {
#			_type => 'ARCharMenuSSStruct',
#			_data => 'p->u.menuSS',
#		},
#		AR_CHAR_MENU_DATA_DICTIONARY => {
#			_type => 'ARCharMenuDDStruct',
#			_data => 'p->u.menuDD',
#		},
#	},
#},


#ARInternalIdList => {
#	_num  => 'p->numItems',
#	_list => 'p->internalIdList',
#	_type => 'ARInternalId',

TODO  view on Meta::CPAN

Container Calls
-----------------------------------------------
  o active link decoding
	decode DDE
-----------------------------------------------
  o implement remaining functions:

ars_GetListContainer

ARCreateCharMenu
ARCreateEscalation
ARCreateField
ARCreateFilter
ARCreateSchema
ARCreateVUI
ARGetEntryStatistics
ARSetActiveLink
ARSetAdminExtension
ARSetCharMenu
ARSetEscalation
ARSetField
ARSetFilter
ARSetFullTextInfo
ARSetSchema
ARSetServerInfo
ARSetVUI
-----------------------------------------------

   o clean up verbose warning output (mostly 

changes.dat  view on Meta::CPAN

TS  corrected function signature for ars_SetVUI, ars_CreateSchema
TS  fixed memory leak in sv_to_ARValue (support.c)
TS  fixed memory leak in ars_GetMultipleEntries, ars_GetListEntryWithFields
      XPUSHs(newRV_noinc(...)) -> XPUSHs(sv_2mortal(newRV_noinc(...)))
TS  added "name" value to schemaHash returned by ars_GetSchema
TS  fixed rev_ARArchiveInfo Struct, moved function from supportrev_generated.c to supportrev.c
TS  changed $ARS_LIBS variable for 7.0 Unix API in Makefile.pl (-licuuc -> -licuucbmc)

released=03/12/2007 version=1.90
TS  added missing ARError_reset() to ars_GetListVUI
TS  added ars_CreateCharMenu, ars_SetCharMenu
TS  added handling of case AR_CHAR_MENU_LIST in ars_GetCharMenu
TS  changed handling of qualifier struct in ars_GetCharMenu, case AR_CHAR_MENU_QUERY
TS  corrected function signature for ars_SetField, ars_CreateContainer
TS  bugfix in ars_GetCharMenu (incorrect array length for "labelFields", "labelIndex")
TS  added ars_SetImpersonatedUser
TS  bugfix in ARError (support.c, memory violation if appendedText == NULL)
TS  ars_SetLogging: changed declaration "int len" to "STRLEN len" because of 
    compilation problems on Solaris
TS  added ars_BeginBulkEntryTransaction, ars_EndBulkEntryTransaction
TS  added AR_FIELD_OFFSET handling in perl_ARFieldValueOrArithStruct (support.c)
TS  added ars_SetSessionConfiguration
TS  completed sv_to_ARCurrencyStruct (support.c)
TS  ARS.pm: set $ARS::logging_file_ptr = 0 to avoid "uninitialized" warning 
TS  changed t/01import.t to import form "ARSperl Test3"

changes.dat  view on Meta::CPAN


released=04/16/2003 version=1.8001
JCM memory leak fixed in ars_CreateEntry
JCM memory leak fixed in ars_SetEntry
JCM memory leak fixed in ars_MergeEntry
JCM memory leak fixed in ars_Export
JCM memory leak fixed in ars_GetListEntry wrt to join forms
JCM memory leak fixed in QualifierStructPtr destructor
JCM memory leak fixed in ControlStruct destructor
JCM various other memory related cleanups
JCM bad/NULL ref fixed in ExpandCharMenu
JCM added new params to ars_Login: lang, authString, tcpport, rpcnumber
JCM added new rv's to ars_GetControlStructFields: lang, authString
JCM updated example and test scripts 
JCM added Alert functions (replaces NT/Notifier functions)
!JCM 5.x (5.0.1, 5.1, 5.1.1) integration<BR>
	functions that no longer are available or always
	return errors indicating they are no longer implemented:
	<blockquote>
		ars_NT*()   [notifier functions]
	</blockquote>
	functions whose parameters have changed:
	<blockquote>
		ars_GetListEntry()<BR>
		ars_GetListEntryWithFields()
	</blockquote>
	functions whose return values have changed:
	<blockquote>
		ars_GetCharMenu()
	</blockquote>

released=11/13/2002 version=1.74
GDF added ars_GetMultipleEntries, ars_GetListEntryWithFields
GDF remove unused num_entries parameter from ARGetListEntry
JCM added ARTermination calls to ars_Login

released=11/13/2001 version=1.73
JCM fixed windows cpp error in support.c
JCM fixed a leftover fprintf warning in support.c that was causing

changes.dat  view on Meta::CPAN

      have altered return values which will break scripts that
      use them <U>if you compile against 4.5 or later libraries</U>
           <blockquote>
                ars_GetActiveLink<BR>
                ars_GetFilter<BR>
                ars_GetEscalation<BR>
                ars_CreateActiveLink<BR>
           </blockquote>
      see the documentation on the return values of these functions
      for details on what has changed.
!JCM changed ars_GetCharMenu so that {'menuType'} is returned
      as a string (decoded) instead of an integer.
!JCM added a parameter to ars_Import which will require that existing
     scripts be updated. see documentation for details.
JCM added patch submitted by Geoff Endresen which enabled decoding
    of push fields actions in GetFilter()
JCM enhanced Makefile.PL to be more intelligent when h2ph fails or
    doesnt exist
JCM added/decoded schemaType (within GetSchema()/CompoundSchema structure)
JCM documentation updates

changes.dat  view on Meta::CPAN

JCM  added ars_GetListEntry.pl example to show how to use
           custom query-list fields.
JCM  numerous documentation updates by {D.J.Adams at soton.ac.uk}
JCM  fixed bug in macroParm decoding. {D.J.Adams at soton.ac.uk}
JCM  fixed bug when decoding results of GetFilter/GetActiveLink
           in regards to set fields actions: values assigned to
           diary fields were not being interpretted correctly.
           {D.J.Adams at soton.ac.uk}
JCM  patched perl_BuildEntryIdList to make it more robust
           (Ulrich Pfeifer {pfeifer at wait.de})
JCM  patched ars_GetCharMenu for bug "GetCharMenu doesn't
          return a qualifier for query menus" {D.J.Adams at soton.ac.uk}
JCM  fixed dup_FieldValueOrArith to support decoding of
           query style menus. 

released=02/09/98 version=1.54
JCM  fixed bug in ars_EncodeDiary()
JCM  added ars_MergeEntry.pl example script

released=12/15/97        version=1.53
JCM  fixed some minor errors in doc

released=11/19/97      version=1.5206
JCM  added ars_GetVUI to the ARS.pm exports line.
JCM  added refreshCode to GetCharMenu hash
JCM  fixed bug in groupList value change in 1.5205

released=11/04/97	version=1.5205
JCM  updated the groupList value returned by GetSchema()
           so that it contains the correct key words.

released=10/29/97  version=1.5204
JCM  added ars_GetControlStructFields()

released=10/20/97   version=1.5203

changes.dat  view on Meta::CPAN


released=10/07/97        version=1.51
JCM   fixed some typos/symbol errors. added a missing routine.

released=10/06/97        version=1.50
JCM removed ars_errstr from C code. replaced with ars_errhash.
           modified ARS.pm to refer to hash when $ars_errstr is 
           accessed. $ars_errstr no longer tie'd to main:: package.
JCM bug fix (Sid Van den Heede) "affecting getting of
           displayInstanceList"
JCM bug fix (James LewisMoss) for ars_GetCharMenu()
JCM bug fix (Ian Flanigan) for perl_ARIndexStruct()
JCM modified GetListEntry(), GetEntry(), SetEntry() and 
           DeleteEntry() to make operations on join schemas 
           transparent.
JCM added a ARVerifyUser call to ars_Login so that
           ars_Login() || die() will work as one would expect it to.
JCM added $VERSION to the perl module file.
JCM added "log to file" action to GetFilter action hash 
           (requested by {D.J.Adams at soton.ac.uk})
JCM added updated doc tree to main distribution (contributed by

changes.dat  view on Meta::CPAN


released=02/13/97        version=1.4
JCM re-organized documentation and web pages
JCM added NT (notifier) functions
JWM bug fixes for 1.32beta

released=02/10/97        version=1.32beta
JWM 3.0 integration

released=11/11/96        version=1.31
JCM minor stuff: added an ifndef in the GetCharMenu routine
            for ars 2.0 users. 2.0 doesnt support SQL menu constructions.

released=11/11/96	version=1.3
JWM undef works in setEntry now.
JWM added ars_Import to complement ars_Export
JCM Profiling code added to keep track of number of
	    queries made.
JWM Field caching code added to make some of the functions
	    more efficient.
JCM New functions: ars_GetFilter(), ars_GetCharMenu(), 
		ars_GetServerStatistics
JWM Internal GetField call now caches results to minimize
		number of queries made.
JCM Examples of new functions. 
JCM "WhoUsesIt.pl" utility

released=01/12/96	version=1.0beta
JWM First release 
JCM Installation, history, and Gnu documentation added.
            Removed -lars from makefile (internal C library that wasn't

example/Dump_Setup.pl  view on Meta::CPAN


($ACCOUNT, $PASSWORD, $path) = @ARGV;
chomp($path = `pwd`) if (!$path);
$c = ars_Login("localhost",$ACCOUNT,$PASSWORD);
die "login error: $ars_errstr\n" unless defined($c);

@schema = ars_GetListSchema($c, 0, 1024);
@active = ars_GetListActiveLink($c);
@filter = ars_GetListFilter($c);
@escal = ars_GetListEscalation($c);
@menu = ars_GetListCharMenu($c);
@admin_ext = ars_GetListAdminExtension($c);

# Warning! this might make several names map to the same file
sub name_to_path {
    my $name = shift;
    $name =~ s/ /_/g;
    $name =~ s/\//:/g;
    return $name;
}

example/Dump_Setup.pl  view on Meta::CPAN

	close DUMP;
	$name =~ s/'/'\\''/;
	system("$ci -l -q '$path/$name'");
    }
}

dump_type("$path/schema", "Schema", \@schema);
dump_type("$path/active", "Active_Link", \@active);
dump_type("$path/filter", "Filter", \@filter);
dump_type("$path/escalation", "Escalation", \@escal);
dump_type("$path/menu", "Char_Menu", \@menu);
dump_type("$path/admin_ext", "Admin_Ext", \@admin_ext);


example/GetCharMenu.pl  view on Meta::CPAN

#!/usr/local/bin/perl
#
# $Header: /cvsroot/arsperl/ARSperl/example/GetCharMenu.pl,v 1.8 2003/03/28 05:51:56 jcmurphy Exp $
#
# NAME
#   GetCharMenu.pl
#
# USAGE
#   GetCharMenu.pl [server] [username] [password] [menuname]
#
# DESCRIPTION
#   Retrieve and print information about the named menu.
#
# AUTHOR
#   Jeff Murphy
#   jcmurphy@acsu.buffalo.edu
#
# $Log: GetCharMenu.pl,v $
# Revision 1.8  2003/03/28 05:51:56  jcmurphy
# more 5.x edits
#
# Revision 1.7  2001/10/24 14:21:27  jcmurphy
# MergeEntry doc update, minor test/example tweaks
#
# Revision 1.6  2000/05/24 18:05:26  jcmurphy
# primary ars4.5 integration in this checkpoint.
#
# Revision 1.5  1998/10/14 13:55:34  jcmurphy

example/GetCharMenu.pl  view on Meta::CPAN

}

($server, $username, $password, $name) = @ARGV;
if(!defined($name)) {
    print "Usage: $0 [server] [username] [password] [menuname]\n";
    exit 0;
}

$ctrl = ars_Login($server, $username, $password);

print "Calling ars_GetCharMenu($ctrl, $name)..\n";
($finfo = ars_GetCharMenu($ctrl, $name)) ||
    die "error in GetCharMenu: $ars_errstr";

# 10005
print "Calling ars_GetCharMenuItems($ctrl, $name)..\n";
my ($menuItems) = ars_GetCharMenuItems($ctrl, $name);
die "$ars_errstr\n" unless defined($menuItems);
print "menuItems=<<$menuItems>> (should be an array ref)\n";
die "hmm. that wasnt an array ref." unless ref ($menuItems) eq "ARRAY";

print "** Menu Info:\n";
print "Name        : \"".$finfo->{"name"}."\"\n";
print "helpText    : ".$finfo->{"helpText"}."\n";
print "timestamp   : ".localtime($finfo->{"timestamp"})."\n";
print "owner       : ".$finfo->{"owner"}."\n";
print "lastChanged : ".$finfo->{"lastChanged"}."\n";
print "changeDiary : ".$finfo->{"changeDiary"}."\n";

foreach (@{$finfo->{"changeDiary"}}) {
    print "\tTIME: ".localtime($_->{"timestamp"})."\n";
    print "\tUSER: $_->{'user'}\n";

example/GetCharMenu.pl  view on Meta::CPAN

}

elsif($finfo->{menuType} eq "sql") {
    print "menuSQL definitions:\n";
    print "\tserver      : ".$finfo->{menuSQL}{server}."\n";
    print "\tsqlCommand  : ".$finfo->{menuSQL}{sqlCommand}."\n";
    print "\tlabelIndex  : ".$finfo->{menuSQL}{labelIndex}."\n";
    print "\tvalueIndex  : ".$finfo->{menuSQL}{valueIndex}."\n";
}

print "Menu Items  :\n";
printMenuItems(1, $menuItems);
print "Simple Menu : (with 'prepend' = false)\n";
print "\t", join("\n\t", ars_simpleMenu($menuItems, 0)), "\n";
print "Simple Menu : (with 'prepend' = true)\n";
print "\t", join("\n\t", ars_simpleMenu($menuItems, 1)), "\n";

ars_Logoff($ctrl);

exit 0;

sub printMenuItems {
	my ($l, $m) = (shift, shift);
	my ($i) = 0;
	for ($i = 0 ; $i <= $#$m ; $i += 2) {
		printl($l, $m->[$i]);
		if(ref($m->[$i+1]) eq "ARRAY") {
			print "\n";
			printMenuItems($l+1, $m->[$i+1]);
		} else {
			print " -> ".$m->[$i+1]."\n";
		}
	}
}

example/Show_ALink.pl  view on Meta::CPAN

$AR_EXECUTE_ON_AFTER_SUBMIT  = 4096;
$AR_EXECUTE_ON_GAIN_FOCUS    = 8192;
$AR_EXECUTE_ON_WINDOW_OPEN   = 16384;
$AR_EXECUTE_ON_WINDOW_CLOSE  = 32768;

%ars_ExecuteOn = ($AR_EXECUTE_ON_BUTTON, "Button", 
    $AR_EXECUTE_ON_RETURN,        "Return",
    $AR_EXECUTE_ON_SUBMIT,        "Submit",
    $AR_EXECUTE_ON_MODIFY,        "Modify",
    $AR_EXECUTE_ON_DISPLAY,       "Display", 
    $AR_EXECUTE_ON_MENU,          "Menu", 
    $AR_EXECUTE_ON_MENU_CHOICE,   "Menu_Choice", 
    $AR_EXECUTE_ON_LOOSE_FOCUS,   "Loose_Focus", 
    $AR_EXECUTE_ON_SET_DEFAULT,   "Set_Default",
    $AR_EXECUTE_ON_QUERY,         "Query",
    $AR_EXECUTE_ON_AFTER_MODIFY,  "After_Modify",
    $AR_EXECUTE_ON_AFTER_SUBMIT,  "After_Submit",
    $AR_EXECUTE_ON_GAIN_FOCUS,    "Gain_Focus",
    $AR_EXECUTE_ON_WINDOW_OPEN,   "Window_Open",
    $AR_EXECUTE_ON_WINDOW_CLOSE,  "Window_Close" 
		  );

example/Show_Menu.pl  view on Meta::CPAN

#!/usr/local/bin/perl
#
# $Header: /cvsroot/arsperl/ARSperl/example/Show_Menu.pl,v 1.1 1996/11/21 20:13:56 jcmurphy Exp $
#
# EXAMPLE
#    Show_Menu.pl
#
# DESCRIPTION
#    Use ars_GetCharMenuItems to obtain information about a menu.
#
# AUTHOR
#    jeff murphy
#
# 01/12/96
# 
# $Log: Show_Menu.pl,v $
# Revision 1.1  1996/11/21 20:13:56  jcmurphy
# Initial revision
#
#

use ARS;

# Parse command line parameters

($server, $username, $password, $menu_name) = @ARGV;

example/Show_Menu.pl  view on Meta::CPAN

    my $i;

    if(defined($s)) {
	for($i = 0; $i < $ind; $i++) {
	    print "\t";
	}
	print $s;
    }
}
# SUBROUTINE
#   DumpMenu(arraypointer, indentation count)
# 
# DESCRIP
#   Recursive subroutine to dump menu and sub menu items

sub DumpMenu {
    my $m = shift;
    my $i = shift;
    my @m = @$m;
    my $name, $val;

    $i = 0 unless $i;

    while (($name, $val, @m) = @m) {
	if (ref($val)) {
	    IndPrint($i, "SubMenu: $name\n");
	    DumpMenu($val, $i+1);
	} else {
	    IndPrint($i, "Name: $name\t Value: $val\n");
	}
    }
}

# Retrieve info about menu.

DumpMenu(ars_GetCharMenuItems($ctrl, $menu_name));

# Log out of the server.

ars_Logoff($ctrl);

example/WhoUsesIt.pl  view on Meta::CPAN

($ctrl = ars_Login($server, $username, $password)) || 
    die "couldn't allocate control structure";

(@schemas = ars_GetListSchema($ctrl)) ||
    die "can't read schema list: $ars_errstr";

if($opt_M) {
    # fine any menu that uses this file as it's
    # source of menu items.

    print "Menus that use the file \"$opt_M\"... (this may take a minute or so to do)\n";

    @menus = ars_GetListCharMenu($ctrl, 0);
    if($#menus != -1) {
	foreach $menu (@menus) {
	    print "Searching: $menu\n" if $debug;
	    ($menuDef = ars_GetCharMenu($ctrl, $menu)) ||
		die "ars_GetCharMenu: $ars_errstr";
	    #next unless ($menu eq "PT-Assignees");
	    #use Data::Dumper; print Dumper($menuDef); exit 0;
	    # 3 is legacy. 
	    if( ($menuDef->{menuType} == 3) || ($menuDef->{menuType} =~ /format_quotes/i) ) {
		print "\tIs type File (points to ".qq{"$menuDef->{menuFile}{filename}"}.")\n" if $debug;
		if ($menuDef->{menuFile}{filename} =~ /$opt_M/) {
		    $users{$menu} = $1;
		}
	    }
	}

example/WhoUsesIt.pl  view on Meta::CPAN

	}
    }

} elsif($opt_m) {
    # find any schema that uses this menu.
    # this particular routine will take longer, because we
    # need to open each schema, and then retrieve all field
    # definitions and finally flip thru each field and see
    # what menus (if any) are attached. 

    print "Searching for Menu \"$opt_m\" in schema \"$opt_s\"...\n";
    print "(this may take some time)\n";

    foreach $schema (@schemas) {
	if($schema =~ /$SCHEMA/) {
	    print "Searching schema: $opt_s\n" if $debug;
	    @fields = ars_GetListField($ctrl, $schema);
	    foreach $field (@fields) {
		$finfo = ars_GetField($ctrl, $schema, $field);
		if(($finfo->{dataType} eq "char") && 
		   defined($finfo->{limit})) {
		    if(($finfo->{limit}{charMenu} ne "") && 
		       ($finfo->{limit}{charMenu} =~ /$opt_m/)) {
			$users{$schema} .= "$finfo->{limit}{charMenu},";
		    }
		}
	    }
	}
    }

    foreach $schema (sort keys %users) {
	print "\t$schema\n";
	foreach $menu (split(/,/, substr($users{$schema}, 0, length($users{$schema})-1))) {
	    print "\t\t$menu\n";

example/del_all.pl  view on Meta::CPAN


print "Fetching..\n";
print "\tActiveLinks .. "; 
@al = ars_GetListActiveLink($c);
print $#al." found.\n";

print "\tAdminExtensions .. "; 
@ae = ars_GetListAdminExtension($c);
print $#ae." found.\n";

print "\tCharMenus .. "; 
@cm = ars_GetListCharMenu($c);
print $#cm." found.\n";

print "\tEscalations .. "; 
@es = ars_GetListEscalation($c);
print $#es." found.\n";

print "\tFilters .. "; 
@fi = ars_GetListFilter($c);
print $#fi." found.\n";

example/del_all.pl  view on Meta::CPAN


print "\nDeleting AdminExtensions:\n";

foreach (@ae) { 
    if($_ =~ /$pat/) {
	print "\t$_\n";
	ars_DeleteAdminExtension($c, $_) || die "$ars_errstr";
    }
}

print "\nDeleting CharMenus:\n";

foreach (@cm) { 
    if($_ =~ /$pat/) {
	print "\t$_\n";
	ars_DeleteCharMenu($c, $_) || die "$ars_errstr";
    }
}

print "\nDeleting Escalations:\n";

foreach (@es) { 
    if($_ =~ /$pat/) {
	print "\t$_\n";
	ars_DeleteEscalation($c, $_) || die "$ars_errstr";
    }

html/changes.html  view on Meta::CPAN

	<TD width='100%'>
	  <TABLE CELLSPACING='0' CELLPADDING='3' WIDTH='100%' BORDER='0'
	    BGCOLOR='lightblue'>
	    <tr><td colspan='2'>
  <table width='100%' border='0'><tr>
	      <td width='50%'>Released: <B>03/12/2007</B></td>
              <td width='50%'>Version: <B>1.90
</B></td>
  </tr></table></td>
            </tr><tr bgcolor='#eeeeee'><td width='10%'>(TS)</td><td width='90%'><font color='black'>added missing ARError_reset() to ars_GetListVUI 
</font></td></tr>
<tr bgcolor='#dddddd'><td width='10%'>(TS)</td><td width='90%'><font color='black'>added ars_CreateCharMenu, ars_SetCharMenu 
</font></td></tr>
<tr bgcolor='#eeeeee'><td width='10%'>(TS)</td><td width='90%'><font color='black'>added handling of case AR_CHAR_MENU_LIST in ars_GetCharMenu 
</font></td></tr>
<tr bgcolor='#dddddd'><td width='10%'>(TS)</td><td width='90%'><font color='black'>changed handling of qualifier struct in ars_GetCharMenu, case AR_CHAR_MENU_QUERY 
</font></td></tr>
<tr bgcolor='#eeeeee'><td width='10%'>(TS)</td><td width='90%'><font color='black'>corrected function signature for ars_SetField, ars_CreateContainer 
</font></td></tr>
<tr bgcolor='#dddddd'><td width='10%'>(TS)</td><td width='90%'><font color='black'>bugfix in ars_GetCharMenu (incorrect array length for "labelFields", "labelIndex") 
</font></td></tr>
<tr bgcolor='#eeeeee'><td width='10%'>(TS)</td><td width='90%'><font color='black'>added ars_SetImpersonatedUser 
</font></td></tr>
<tr bgcolor='#dddddd'><td width='10%'>(TS)</td><td width='90%'><font color='black'>bugfix in ARError (support.c, memory violation if appendedText == NULL) 
</font></td></tr>
<tr bgcolor='#eeeeee'><td width='10%'>(TS)</td><td width='90%'><font color='black'>ars_SetLogging: changed declaration "int len" to "STRLEN len" because of  
compilation problems on Solaris </font></td></tr>
<tr bgcolor='#dddddd'><td width='10%'>(TS)</td><td width='90%'><font color='black'>added ars_BeginBulkEntryTransaction, ars_EndBulkEntryTransaction 
</font></td></tr>
<tr bgcolor='#eeeeee'><td width='10%'>(TS)</td><td width='90%'><font color='black'>added AR_FIELD_OFFSET handling in perl_ARFieldValueOrArithStruct (support.c) 

html/changes.html  view on Meta::CPAN

<tr bgcolor='#dddddd'><td width='10%'>(JCM)</td><td width='90%'><font color='black'>memory leak fixed in ars_Export 
</font></td></tr>
<tr bgcolor='#eeeeee'><td width='10%'>(JCM)</td><td width='90%'><font color='black'>memory leak fixed in ars_GetListEntry wrt to join forms 
</font></td></tr>
<tr bgcolor='#dddddd'><td width='10%'>(JCM)</td><td width='90%'><font color='black'>memory leak fixed in QualifierStructPtr destructor 
</font></td></tr>
<tr bgcolor='#eeeeee'><td width='10%'>(JCM)</td><td width='90%'><font color='black'>memory leak fixed in ControlStruct destructor 
</font></td></tr>
<tr bgcolor='#dddddd'><td width='10%'>(JCM)</td><td width='90%'><font color='black'>various other memory related cleanups 
</font></td></tr>
<tr bgcolor='#eeeeee'><td width='10%'>(JCM)</td><td width='90%'><font color='black'>bad/NULL ref fixed in ExpandCharMenu 
</font></td></tr>
<tr bgcolor='#dddddd'><td width='10%'>(JCM)</td><td width='90%'><font color='black'>added new params to ars_Login: lang, authString, tcpport, rpcnumber 
</font></td></tr>
<tr bgcolor='#eeeeee'><td width='10%'>(JCM)</td><td width='90%'><font color='black'>added new rv's to ars_GetControlStructFields: lang, authString 
</font></td></tr>
<tr bgcolor='#dddddd'><td width='10%'>(JCM)</td><td width='90%'><font color='black'>updated example and test scripts  
</font></td></tr>
<tr bgcolor='#eeeeee'><td width='10%'>(JCM)</td><td width='90%'><font color='black'>added Alert functions (replaces NT/Notifier functions) 
</font></td></tr>
<tr bgcolor='#dddddd'><td width='10%'>(JCM)</td><td width='90%'><font color='red'>5.x (5.0.1, 5.1, 5.1.1) integration<BR> 
functions that no longer are available or always return errors indicating they are no longer implemented: <blockquote> ars_NT*()   [notifier functions] </blockquote> functions whose parameters have changed: <blockquote> ars_GetListEntry()<BR> ars_Get...

<P>


    <TABLE CELLSPACING='0'
      CELLPADDING='2'
      WIDTH='100%'
      BORDER='0' 
      BGCOLOR='black'>
      <TR>

html/changes.html  view on Meta::CPAN

              <td width='50%'>Version: <B>1.68
</B></td>
  </tr></table></td>
            </tr><tr bgcolor='#eeeeee'><td width='10%'>(JCM)</td><td width='90%'><font color='black'>modifications to example/ars_GetListEntry.pl to make 
it function with different revisions of the User form. </font></td></tr>
<tr bgcolor='#dddddd'><td width='10%'>(JCM)</td><td width='90%'><font color='black'>arsperl now requires at minimum perl 5.004. 
</font></td></tr>
<tr bgcolor='#eeeeee'><td width='10%'>(JCM)</td><td width='90%'><font color='black'>converted "na" "sv_unref" to PL_ namespace.  
added perl-version checking so it will still compile against 5.004. </font></td></tr>
<tr bgcolor='#dddddd'><td width='10%'>(JCM)</td><td width='90%'><font color='red'>ars4.5 compatibility changes. the following functions 
have altered return values which will break scripts that use them <U>if you compile against 4.5 or later libraries</U> <blockquote> ars_GetActiveLink<BR> ars_GetFilter<BR> ars_GetEscalation<BR> ars_CreateActiveLink<BR> </blockquote> see the documenta...
<tr bgcolor='#eeeeee'><td width='10%'>(JCM)</td><td width='90%'><font color='red'>changed ars_GetCharMenu so that {'menuType'} is returned 
as a string (decoded) instead of an integer. </font></td></tr>
<tr bgcolor='#dddddd'><td width='10%'>(JCM)</td><td width='90%'><font color='red'>added a parameter to ars_Import which will require that existing 
scripts be updated. see documentation for details. </font></td></tr>
<tr bgcolor='#eeeeee'><td width='10%'>(JCM)</td><td width='90%'><font color='black'>added patch submitted by Geoff Endresen which enabled decoding 
of push fields actions in GetFilter() </font></td></tr>
<tr bgcolor='#dddddd'><td width='10%'>(JCM)</td><td width='90%'><font color='black'>enhanced Makefile.PL to be more intelligent when h2ph fails or 
doesnt exist </font></td></tr>
<tr bgcolor='#eeeeee'><td width='10%'>(JCM)</td><td width='90%'><font color='black'>added/decoded schemaType (within GetSchema()/CompoundSchema structure) 
</font></td></tr>
<tr bgcolor='#dddddd'><td width='10%'>(JCM)</td><td width='90%'><font color='black'>documentation updates 

html/changes.html  view on Meta::CPAN

            </tr><tr bgcolor='#eeeeee'><td width='10%'>(JCM)</td><td width='90%'><font color='black'>added ars_GetListEntry.pl example to show how to use 
custom query-list fields. </font></td></tr>
<tr bgcolor='#dddddd'><td width='10%'>(JCM)</td><td width='90%'><font color='black'>numerous documentation updates by {D.J.Adams at soton.ac.uk} 
</font></td></tr>
<tr bgcolor='#eeeeee'><td width='10%'>(JCM)</td><td width='90%'><font color='black'>fixed bug in macroParm decoding. {D.J.Adams at soton.ac.uk} 
</font></td></tr>
<tr bgcolor='#dddddd'><td width='10%'>(JCM)</td><td width='90%'><font color='black'>fixed bug when decoding results of GetFilter/GetActiveLink 
in regards to set fields actions: values assigned to diary fields were not being interpretted correctly. {D.J.Adams at soton.ac.uk} </font></td></tr>
<tr bgcolor='#eeeeee'><td width='10%'>(JCM)</td><td width='90%'><font color='black'>patched perl_BuildEntryIdList to make it more robust 
(Ulrich Pfeifer {pfeifer at wait.de}) </font></td></tr>
<tr bgcolor='#dddddd'><td width='10%'>(JCM)</td><td width='90%'><font color='black'>patched ars_GetCharMenu for bug "GetCharMenu doesn't 
return a qualifier for query menus" {D.J.Adams at soton.ac.uk} </font></td></tr>
<tr bgcolor='#eeeeee'><td width='10%'>(JCM)</td><td width='90%'><font color='black'>fixed dup_FieldValueOrArith to support decoding of 
query style menus.  </table></td></tr></table>

<P>


    <TABLE CELLSPACING='0'
      CELLPADDING='2'
      WIDTH='100%'

html/changes.html  view on Meta::CPAN

	<TD width='100%'>
	  <TABLE CELLSPACING='0' CELLPADDING='3' WIDTH='100%' BORDER='0'
	    BGCOLOR='lightblue'>
	    <tr><td colspan='2'>
  <table width='100%' border='0'><tr>
	      <td width='50%'>Released: <B>11/19/97</B></td>
              <td width='50%'>Version: <B>1.5206
</B></td>
  </tr></table></td>
            </tr><tr bgcolor='#eeeeee'><td width='10%'>(JCM)</td><td width='90%'><font color='black'>added ars_GetVUI to the ARS.pm exports line. 
</font></td></tr>
<tr bgcolor='#dddddd'><td width='10%'>(JCM)</td><td width='90%'><font color='black'>added refreshCode to GetCharMenu hash 
</font></td></tr>
<tr bgcolor='#eeeeee'><td width='10%'>(JCM)</td><td width='90%'><font color='black'>fixed bug in groupList value change in 1.5205 
</table></td></tr></table>

<P>


    <TABLE CELLSPACING='0'
      CELLPADDING='2'
      WIDTH='100%'

html/changes.html  view on Meta::CPAN

	    BGCOLOR='lightblue'>
	    <tr><td colspan='2'>
  <table width='100%' border='0'><tr>
	      <td width='50%'>Released: <B>10/06/97</B></td>
              <td width='50%'>Version: <B>1.50
</B></td>
  </tr></table></td>
            </tr><tr bgcolor='#eeeeee'><td width='10%'>(JCM)</td><td width='90%'><font color='black'>removed ars_errstr from C code. replaced with ars_errhash. 
modified ARS.pm to refer to hash when $ars_errstr is  accessed. $ars_errstr no longer tie'd to main:: package. </font></td></tr>
<tr bgcolor='#dddddd'><td width='10%'>(JCM)</td><td width='90%'><font color='black'>bug fix (Sid Van den Heede) "affecting getting of 
displayInstanceList" </font></td></tr>
<tr bgcolor='#eeeeee'><td width='10%'>(JCM)</td><td width='90%'><font color='black'>bug fix (James LewisMoss) for ars_GetCharMenu() 
</font></td></tr>
<tr bgcolor='#dddddd'><td width='10%'>(JCM)</td><td width='90%'><font color='black'>bug fix (Ian Flanigan) for perl_ARIndexStruct() 
</font></td></tr>
<tr bgcolor='#eeeeee'><td width='10%'>(JCM)</td><td width='90%'><font color='black'>modified GetListEntry(), GetEntry(), SetEntry() and  
DeleteEntry() to make operations on join schemas  transparent. </font></td></tr>
<tr bgcolor='#dddddd'><td width='10%'>(JCM)</td><td width='90%'><font color='black'>added a ARVerifyUser call to ars_Login so that 
ars_Login() || die() will work as one would expect it to. </font></td></tr>
<tr bgcolor='#eeeeee'><td width='10%'>(JCM)</td><td width='90%'><font color='black'>added $VERSION to the perl module file. 
</font></td></tr>
<tr bgcolor='#dddddd'><td width='10%'>(JCM)</td><td width='90%'><font color='black'>added "log to file" action to GetFilter action hash  

html/changes.html  view on Meta::CPAN

      BGCOLOR='black'>
      <TR>
	<TD width='100%'>
	  <TABLE CELLSPACING='0' CELLPADDING='3' WIDTH='100%' BORDER='0'
	    BGCOLOR='lightblue'>
	    <tr><td colspan='2'>
  <table width='100%' border='0'><tr>
	      <td width='50%'>Released: <B>11/11/96</B></td>
              <td width='50%'>Version: <B>1.31
</B></td>
  </tr></table></td>
            </tr><tr bgcolor='#eeeeee'><td width='10%'>(JCM)</td><td width='90%'><font color='black'>minor stuff: added an ifndef in the GetCharMenu routine 
for ars 2.0 users. 2.0 doesnt support SQL menu constructions. </table></td></tr></table>

<P>


    <TABLE CELLSPACING='0'
      CELLPADDING='2'
      WIDTH='100%'
      BORDER='0' 
      BGCOLOR='black'>

html/changes.html  view on Meta::CPAN

              <td width='50%'>Version: <B>1.3
</B></td>
  </tr></table></td>
            </tr><tr bgcolor='#eeeeee'><td width='10%'>(JWM)</td><td width='90%'><font color='black'>undef works in setEntry now. 
</font></td></tr>
<tr bgcolor='#dddddd'><td width='10%'>(JWM)</td><td width='90%'><font color='black'>added ars_Import to complement ars_Export 
</font></td></tr>
<tr bgcolor='#eeeeee'><td width='10%'>(JCM)</td><td width='90%'><font color='black'>Profiling code added to keep track of number of 
queries made. </font></td></tr>
<tr bgcolor='#dddddd'><td width='10%'>(JWM)</td><td width='90%'><font color='black'>Field caching code added to make some of the functions 
more efficient. </font></td></tr>
<tr bgcolor='#eeeeee'><td width='10%'>(JCM)</td><td width='90%'><font color='black'>New functions: ars_GetFilter(), ars_GetCharMenu(),  
ars_GetServerStatistics </font></td></tr>
<tr bgcolor='#dddddd'><td width='10%'>(JWM)</td><td width='90%'><font color='black'>Internal GetField call now caches results to minimize 
number of queries made. </font></td></tr>
<tr bgcolor='#eeeeee'><td width='10%'>(JCM)</td><td width='90%'><font color='black'>Examples of new functions.  
</font></td></tr>
<tr bgcolor='#dddddd'><td width='10%'>(JCM)</td><td width='90%'><font color='black'>"WhoUsesIt.pl" utility 
</table></td></tr></table>

<P>

html/manual/ars_CreateCharMenu.html  view on Meta::CPAN

<HTML>
<HEAD>
<TITLE>ARSperl Programmer's Manual - ars_CreateCharMenu</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF">

   <H2><CODE>ars_CreateCharMenu(ctrl, menuHash)</CODE></H2>

      This function creates a new menu. You must first
      populate the <CODE>menuHash</CODE> before calling this routine.

      <P>

      <DL>
          <DT><B>On success</B><DD>
              Returns 1
          <DT><B>On failure</B><DD>

html/manual/ars_CreateCharMenu.html  view on Meta::CPAN

      </DL>

      <P>Example:

      <P><BLOCKQUOTE>
      <I> This example copies an existing menu to a new 
          active link. I.e. it simply re-saves the menu under
          a new name. </I></BLOCKQUOTE>

      <PRE>
      ($m = ars_GetCharMenu($c, "C-foobar")) ||
	    die $ars_errstr;
      $m->{name} = "Copy of ".$m->{name};
      ars_CreateCharMenu($c, $m) || die $ars_errstr;
      </PRE>

<B>Notes</B>: Hash keys <CODE>helpText, owner</CODE> and 
<CODE>changeDiary</CODE> are optional when calling this routine.
<P>
<I>This function was introduced in version 1.90 of ARSperl</I>
<P>

<A HREF="toc.html"><IMG ALT="&lt;--" SRC="arrow.gif" ALIGN=CENTER> Back to Table of Contents </A>
</BODY>

html/manual/ars_DeleteCharMenu.html  view on Meta::CPAN

<HTML>
<HEAD>
<TITLE>ARSperl Manual - ars_DeleteCharMenu</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF">

   <H2><CODE>ars_DeleteCharMenu(ctrl, name)</CODE></H2>

	Delete the named Menu from the server connected to in
	the given control structure. <FONT COLOR="#FF0000">Requires Administrator privs to use.</FONT> <P>

      <DL>
         <DT><B>On success</B><DD>
		Returns 1. 
         <DT><B>On failure</B><DD>
                Returns 0.
      </DL>

      <P>Example:

      <PRE>
      ars_DeleteCharMenu($ctrl, "CM-FooBar") || die "$ars_errstr";
      </PRE>

<I>ars_DeleteCharMenu was introduced in version 1.5 of ARSperl</I>

<P>
<HR WIDTH="30%">
<P>
<A HREF="toc.html"><IMG ALT="&lt;--" SRC="arrow.gif" ALIGN=CENTER> Table of Contents </A>
<p>
<address>
Last changes to this page 21st July 1997 by jcmurphy@arsperl.org<BR>
&#169; J.C.Murphy, J.W.Murphy 1997 arsperl@arsperl.org
</address>

html/manual/ars_GetCharMenu.html  view on Meta::CPAN

<HTML>
<HEAD>
<TITLE>ARSperl Manual - ars_GetCharMenu</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF">

<H2><CODE>ars_GetCharMenu(ctrl, name)</CODE></H2>

Returns a 
<A HREF="ds_getcharmenu_hash.html">HASH</a> 
consisting of menu attributes. <br>
<CODE>name</CODE>
is the actual menu name as shown in the ARAdmin tool.
<P>

  <DL>
  <DT><B>On success</B><DD>
		returns a HASH
  <DT><B>On failure</B><DD>
		returns undef
  </DL>
  <P>

<em>ars_GetCharMenu was introduced in version 1.3 of ARSperl.</em>

<P>
<HR WIDTH="30%">
<P>
<A HREF="toc.html"><IMG ALT="&lt;--" SRC="arrow.gif" ALIGN=CENTER> Table of Contents </A>
<p>
<address>
Last changes to this page 11th July 1997 by d.j.adams@soton.ac.uk<br>
&#169; J.C.Murphy, J.W.Murphy 1997 arsperl@arsperl.org
</address>

html/manual/ars_GetCharMenuItems.html  view on Meta::CPAN

<HTML>
<HEAD>
<TITLE>ARSperl Manual - ars_GetCharMenuItem</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF">

   <H2><CODE>ars_GetCharMenuItems(ctrl,name)</CODE></H2>

      This function builds a "linked list" of menu items. It returns an
      array pointer to the top level menu that is made up of 
      <I>(name, value)</I> pairs. If the <I>value</I> is, in turn, another
      array pointer, then it points to a submenu structure. <P>

      <B>Illustration</B>
      <PRE>
      @menu_struct
       ($name = "Item1"   , $value = "This is item1")
             .
             .
             .
       ($name = "Sub Menu", $value = array reference)
                                +------&gt; @sub_menu_struct
                                          ($name = "SubItem1", $value = ...)
                                    . 
                                    .
                                    .
      </PRE>
      See <I>Show_Menu.pl</I> for a demonstration of using this function 
      and its output.<P>

      <DL>
          <DT><B>On success</B><DD>
              A reference to an array.
          <DT><B>On failure</B><DD>
              <CODE>undef</CODE>.
      </DL>

      <P>Example:

      <PRE>
      $m = ars_GetCharMenuItems($ctrl, $menu_name));
      @menu_struct = @$m;
      </PRE>

<P>
<HR WIDTH="30%">
<P>
<A HREF="toc.html"><IMG ALT="&lt;--" SRC="arrow.gif" ALIGN=CENTER> Table of Contents </A>
<p>
<address>
Last changes to this page 26th June 1997 by d.j.adams@soton.ac.uk<br>

html/manual/ars_GetListCharMenu.html  view on Meta::CPAN

<HTML>
<HEAD>
<TITLE>ARSperl Programmer's Manual</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF">

    <H2><CODE>ars_GetListCharMenu(ctrl,changedsince=0)</CODE></H2>

	Returns an array of all available Menu names or a subset based
	upon the given timestamp.
	<P>
      <DL>
          <DT><B>On success</B><DD>
		returns an array of strings
          <DT><B>On failure</B><DD>
		returns undef
      </DL>
	<P>

html/manual/ars_SetCharMenu.html  view on Meta::CPAN

<HTML>
<HEAD>
<TITLE>ARSperl Programmer's Manual - ars_SetCharMenu</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF">

   <H2><CODE>ars_SetCharMenu(ctrl, name, menuHash)</CODE></H2>

      This function modifies an existing menu. You must first
      populate the <CODE>menuHash</CODE> before calling this routine.

      <P>
      <DL>
          <DT><B>On success</B><DD>
              Returns 1
          <DT><B>On failure</B><DD>
              Returns 0
      </DL>

      <P>Example:

      <P><BLOCKQUOTE>
      <I> This example changes the name and the refresh code of the menu "TEST:CharMenu".
      </I></BLOCKQUOTE>

      <PRE>
      ars_SetCharMenu( $c, "TEST:CharMenu, {
        name        => "TEST:CharMenu2",
        refreshCode => "open",
      } ) || die $ars_errstr;
      </PRE>

<P>
<I>This function was introduced in version 1.90 of ARSperl</I>
<P>

<A HREF="toc.html"><IMG ALT="&lt;--" SRC="arrow.gif" ALIGN=CENTER> Back to Table of Contents </A>
</BODY>

html/manual/ars_simpleMenu.html  view on Meta::CPAN

<HTML>
<HEAD>
<TITLE>ARSperl Programmer's Manual</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF">

   <H2><CODE>ars_simpleMenu(menu)</CODE></H2>

      This is a perl routine in the ARS.pm perl module. It is primarily
      intended to make life a little easier for the Web client demo script.
      It converts a menu returned by ars_GetCharMenuItems to a single level
      menu seperating labels with '/'. This was added because of
      limitations in HTML.<P>

      <DL>
          <DT><B>On success</B><DD>
              An array of menu items.
          <DT><B>On failure</B><DD>
              <CODE>undef</CODE>
      </DL>

      <P>Example:

      <PRE>
      @sm = ars_simpleMenu(ars_GetCharMenuItems($ctrl, $menu_name));
      </PRE>
<P>

<A HREF="toc.html"><IMG ALT="&lt;--" SRC="arrow.gif" ALIGN=CENTER> Back to Table of Contents </A>
</BODY>
</HTML>

html/manual/ds_charmenu_file_hash.html  view on Meta::CPAN

<HTML>
<HEAD>
<TITLE>ARSperl Manual - GetCharMenu File Hash</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF">

<H2>GetCharMenu File Hash</H2>

<PRE>
{
 "fileLocation"   =&gt; integer enumeration,
 "filename"       =&gt; string
}
</PRE>

<P>
<HR WIDTH="30%">

html/manual/ds_charmenu_query_hash.html  view on Meta::CPAN

<HTML>
<HEAD>
<TITLE>ARSperl Manual - GetCharMenu Query Hash</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF">

<H2>GetCharMenu Query Hash</H2>

<PRE>
{
 "schema"       =&gt; string,
 "server"       =&gt; string,
 "labelField"   =&gt; ref to array of integers, 
 "valueField"   =&gt; integer,
 "sortOnLabel"  =&gt; integer boolean,
 "qualifier"    =&gt; internal pointer
}

html/manual/ds_charmenu_sql_hash.html  view on Meta::CPAN

<HTML>
<HEAD>
<TITLE>ARSperl Manual - GetCharMenu SQL Hash</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF">

<H2>GetCharMenu SQL Hash</H2>

<PRE>
{
 "server"       =&gt; string,
 "sqlCommand"   =&gt; string,
 "labelIndex"   =&gt; integer,
 "valueIndex"   =&gt; integer,
}
</PRE>

html/manual/ds_fc.html  view on Meta::CPAN


<H2>Field Characteristics Structure</H2>

A reference to this structure is returned by the
<A href="ds_alas.html">Active Link Action Structure</a>
when the action is the change in field characteristics.

<PRE>
{
 "accessOption" =&gt; integer,
 "charMenu"     =&gt; string,
 "fieldId"      =&gt; integer,
 "focus"        =&gt; integer,
 "display"      =&gt; reference to <A HREF="ds_ds.html">Display Structure</A>, <B>(2.x only)</B>
 "props"        =&gt; reference to <A HREF="ds_prop_hash.html">Props Structure</A>, <B>(3.x only)</B>
}
</PRE>

<P>
<HR WIDTH="30%">
<P>

html/manual/ds_fls.html  view on Meta::CPAN

 "min"             =&gt; float,
 "max"             =&gt; float,
 "precision"       =&gt; integer
}

       <i>or</i>

<b>; char</b>
{
 "maxLength"       =&gt; integer,
 "menuStyle"       =&gt; "append" <i>or</i> "overwrite",<br> "match"           =&gt; "anywhere" <i>or</i> "leading" <i>or</i> "equal",<br> "charMenu"        =&gt; string,<br> "pattern"         =&gt; string,<br> "fullTextOptions" =&gt; "none" <i>or</i...

<b>; diary</b>
{
 "fullTextOptions" =&gt; "none" <i>or</i> "indexed"}<br>        <i>or</i>
<b>; enum and bitmask</b>
array of strings

        <i>or</i>

<b>; enum</b>

html/manual/ds_getcharmenu_hash.html  view on Meta::CPAN

<HTML>
<HEAD>
<TITLE>ARSperl Manual - GetCharMenu Hash</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF">

<H2>GetCharMenu Hash</H2>


<PRE>
{
 "changeDiary" =&gt; <i>list</I> of references to <a href="ds_diaryentry_hash.html">Diary Entry Structures</a>,
 "helpText"     =&gt; string,
 "lastChanged"  =&gt; string,
 "menuType"     =&gt; string, (<code>list, query, file, </code> or <code>sql</code>)
 "name"	        =&gt; string,
 "owner"        =&gt; string,
 "timestamp"    =&gt; integer,
   <i>either (if menuType is Query)</i>  
 "menuQuery"    =&gt; reference to <A HREF="ds_charmenu_query_hash.html">CharMenu Query Hash</A>
   <i>or (if menuType is SQL)</i>
 "menuSQL"      =&gt; reference to <A HREF="ds_charmenu_sql_hash.html">CharMenu SQL Hash</A>
   <i>or (if menuType is File)</i>
 "menuFile"     =&gt; reference to <A HREF="ds_charmenu_file_hash.html">CharMenu File Hash</A>
   <i>or none (if menuType is Character)</i>
 "refreshCode"  =&gt; one of: <CODE>connect, open</CODE> or <CODE>interval</CODE>
 <font color='red'>"objPropList"     =&gt; <I>list</I> of references to <a
	href="ds_prop_hash.html">Property Hash</a></font> <B>(&gt;= 4.5)</B>
}
</PRE>

<P>
<HR WIDTH="30%">
<P>

html/manual/toc.html  view on Meta::CPAN

          <li>
            <a href="ars_BeginBulkEntryTransaction.html">ars_BeginBulkEntryTransaction</a>
          </li>
          <li>
            <a href="ars_CreateActiveLink.html">ars_CreateActiveLink</a>
          </li>
          <li>
            <a href="ars_CreateAlertEvent.html">ars_CreateAlertEvent</a>
          </li>
          <li>
            <a href="ars_CreateCharMenu.html">ars_CreateCharMenu</a>
          </li>
          <li>
            <a href="ars_CreateContainer.html">ars_CreateContainer</a>
          </li>
          <li>
            <a href="ars_CreateEntry.html">ars_CreateEntry</a>
          </li>
          <li>
            <a href="ars_CreateEscalation.html">ars_CreateEscalation</a>
          </li>

html/manual/toc.html  view on Meta::CPAN

          <li>
            <a href="ars_DateToJulianDate.html">ars_DateToJulianDate</a>
          </li>
          <li>
            <a href="ars_DecodeAlertMessage.html">ars_DecodeAlertMessage</a>
          </li>
          <li>
            <a href="ars_DeleteActiveLink.html">ars_DeleteActiveLink</a>
          </li>
          <li>
            <a href="ars_DeleteCharMenu.html">ars_DeleteCharMenu</a>
          </li>
          <li>
            <a href="ars_DeleteContainer.html">ars_DeleteContainer</a>
          </li>
          <li>
            <a href="ars_DeleteEntry.html">ars_DeleteEntry</a>
          </li>
          <li>
            <a href="ars_DeleteEscalation.html">ars_DeleteEscalation</a>
          </li>

html/manual/toc.html  view on Meta::CPAN

          <li>
            <a href="ars_Export.html">ars_Export</a>
          </li>
          <li>
            <a href="ars_GetActiveLink.html">ars_GetActiveLink</a>
          </li>
          <li>
            <a href="ars_GetAlertCount.html">ars_GetAlertCount</a>
          </li>
          <li>
            <a href="ars_GetCharMenu.html">ars_GetCharMenu</a>
          </li>
          <li>
            <a href="ars_GetClientCharSet.html">ars_GetClientCharSet</a>
          </li>
          <li>
            <a href="ars_GetContainer.html">ars_GetContainer</a>
          </li>
          <li>
            <a href="ars_GetCharMenuItems.html">ars_GetCharMenuItems</a>
          </li>
          <li>
            <a href="ars_GetEntry.html">ars_GetEntry</a>
          </li>
          <li>
            <a href="ars_GetEntryBLOB.html">ars_GetEntryBLOB</a>
          </li>
          <li>
            <a href="ars_GetEscalation.html">ars_GetEscalation</a>
          </li>

html/manual/toc.html  view on Meta::CPAN

          <li>
            <a href="ars_GetImage.html">ars_GetImage</a>
          </li>
          <li>
            <a href="ars_GetListActiveLink.html">ars_GetListActiveLink</a>
          </li>
          <li>
            <a href="ars_GetListAlertUser.html">ars_GetListAlertUser</a>
          </li>
          <li>
            <a href="ars_GetListCharMenu.html">ars_GetListCharMenu</a>
          </li>
          <li>
            <a href="ars_GetListContainer.html">ars_GetListContainer</a>
          </li>
          <li>
            <a href="ars_GetListEntry.html">ars_GetListEntry</a>
          </li>
          <li>
            <a href="ars_GetListEntryWithFields.html">ars_GetListEntryWithFields</a>
          </li>

html/manual/toc.html  view on Meta::CPAN

          <li>
            <a href="ars_MergeEntry.html">ars_MergeEntry</a>
          </li>
          <li>
            <a href="ars_RegisterForAlerts.html">ars_RegisterForAlerts</a>
          </li>
          <li>
            <a href="ars_SetActiveLink.html">ars_SetActiveLink</a>
          </li>
          <li>
            <a href="ars_SetCharMenu.html">ars_SetCharMenu</a>
          </li>
          <li>
            <a href="ars_SetContainer.html">ars_SetContainer</a>
          </li>
          <li>
            <a href="ars_SetEntry.html">ars_SetEntry</a>
          </li>
          <li>
            <a href="ars_SetEscalation.html">ars_SetEscalation</a>
          </li>

html/manual/toc.html  view on Meta::CPAN

          <li>
            <a href="ars_GetProfileInfo.html">ars_GetProfileInfo</a>
          </li>
          <li>
            <a href="ars_padEntryid.html">ars_padEntryid</a>
          </li>
          <li>
            <a href="ars_perl_qualifier.html">ars_perl_qualifier</a>
          </li>
          <li>
            <a href="ars_simpleMenu.html">ars_simpleMenu</a>
          </li>
        </ul>
      </dd>
      <dt class="c1">
        Data structures
      </dt>
      <dd>
        <ul>
          <li>
            <a href="ds_al.html">Active Link Attributes Structure</a>

html/manual/toc.html  view on Meta::CPAN

              </li>
              <li>
                <a href="ds_fncas.html">Function Assign Structure</a>
              </li>
              <li>
                <a href="ds_vs.html">Value Structure</a>
              </li>
            </ul>
          </li>
          <li>
            <a href="ds_getcharmenu_hash.html">Character Menu Structure</a>
            <ul>
              <li>
                <a href="ds_charmenu_query_hash.html">Query Hash</a>
              </li>
              <li>
                <a href="ds_charmenu_sql_hash.html">SQL Hash</a>
              </li>
              <li>
                <a href="ds_charmenu_file_hash.html">File Hash</a>
              </li>

support-h.template  view on Meta::CPAN

	unsigned int  number;
	char         *name;
} OpenWindowModeMap[] = {
/*OPENWINDOWMODEMAP*/
	{ TYPEMAP_LAST, "" }
};

static struct {
	unsigned int  number;
	char         *name;
} CharMenuDDTypeMap[] = {
/*CHARMENUDDTYPEMAP*/
	{ TYPEMAP_LAST, "" }
};

static struct {
	unsigned int  number;
	char         *name;
} CharMenuDDNameMap[] = {
/*CHARMENUDDNAMEMAP*/
	{ TYPEMAP_LAST, "" }
};

static struct {
	unsigned int  number;
	char         *name;
} CharMenuDDValueMap[] = {
/*CHARMENUDDVALUEMAP*/
	{ TYPEMAP_LAST, "" }
};

static struct {
	unsigned int  number;
	char         *name;
} CharMenuTypeMap[] = {
/*CHARMENUTYPEMAP*/
	{ TYPEMAP_LAST, "" }
};

static struct {
	unsigned int  number;
	char         *name;
} FilterActionTypeMap[] = {
/*FILTERACTIONTYPEMAP*/
	{ TYPEMAP_LAST, "" }
};

static struct {
  unsigned int  number;
  char         *name;
} CharMenuRefreshCodeTypeMap[] = {
/*CHARMENUREFRESHCODETYPEMAP*/
  { TYPEMAP_LAST, "" }
};

#define PERMTYPE_SCHEMA 0
#define PERMTYPE_FIELD  1

static struct {
  unsigned int  number;
  char         *name;

support-h.template  view on Meta::CPAN

EXTERN char        *strappend(char *b, char *a);

EXTERN int          ARError_reset();
EXTERN int          ARError_add( int type, long num, char *text);
EXTERN int          ARError( int returncode, ARStatusList status);
#if AR_EXPORT_VERSION < 6
EXTERN int          NTError( int returncode, NTStatusList status);
#endif

EXTERN SV *perl_diary(ARControlStruct *ctrl, ARDiaryStruct *in);
EXTERN SV *perl_MenuRefreshCode2Str(ARControlStruct *ctrl,  unsigned int rc);
EXTERN SV *perl_ARPermissionList(ARControlStruct *ctrl,  ARPermissionList *in, int);
#ifdef ARS452
EXTERN SV *perl_ARFilterStatusStruct(ARControlStruct *ctrl,  ARFilterStatusStruct *);
#endif
EXTERN SV *perl_ARStatusStruct(ARControlStruct *ctrl,  ARStatusStruct *);
#if AR_EXPORT_VERSION >= 4
EXTERN SV *perl_ARMessageStruct(ARControlStruct *ctrl,  ARMessageStruct *);
#endif
#if AR_EXPORT_VERSION >= 5
EXTERN SV *perl_ARWorkflowConnectStruct(ARControlStruct * ctrl, ARWorkflowConnectStruct * in);

support-h.template  view on Meta::CPAN

EXTERN SV *perl_ARSetFieldsActionStruct( ARControlStruct *ctrl, ARSetFieldsActionStruct *p );
EXTERN SV *perl_ARPushFieldsActionStruct( ARControlStruct *ctrl, ARPushFieldsActionStruct *p );
#endif
EXTERN SV *perl_ARFilterActionStruct(ARControlStruct *ctrl,  ARFilterActionStruct *);
EXTERN SV *perl_AROwnerObj(ARControlStruct *ctrl,  ARContainerOwnerObj *);
#if AR_EXPORT_VERSION >= 6L
EXTERN SV *perl_AROwnerObjList(ARControlStruct *ctrl,  ARContainerOwnerObjList *);
#endif
EXTERN SV *perl_ARReferenceStruct(ARControlStruct *ctrl,  ARReferenceStruct *);
EXTERN SV *perl_ARReferenceList(ARControlStruct *ctrl,  ARReferenceList *);
EXTERN SV *perl_expandARCharMenuStruct( ARControlStruct *, ARCharMenuStruct *);
EXTERN SV *perl_AREntryListFieldStruct(ARControlStruct *ctrl, 
					AREntryListFieldStruct *);
EXTERN SV *perl_ARIndexStruct(ARControlStruct *ctrl,  ARIndexStruct *);
EXTERN SV *perl_ARFieldLimitStruct(ARControlStruct *ctrl,  ARFieldLimitStruct *);
EXTERN SV *perl_ARFunctionAssignStruct(ARControlStruct *ctrl, 
					 ARFunctionAssignStruct *);
EXTERN SV *perl_ARArithOpAssignStruct(ARControlStruct *ctrl,  ARArithOpAssignStruct *);
EXTERN void dup_Value(ARControlStruct *ctrl,  ARValueStruct *, ARValueStruct *);
EXTERN ARArithOpStruct *dup_ArithOp(ARControlStruct *ctrl,  ARArithOpStruct *);
EXTERN void dup_ValueList(ARControlStruct *ctrl,  ARValueList *, ARValueList *);

support-h.template  view on Meta::CPAN

EXTERN SV *perl_AREntryReturn( ARControlStruct *ctrl, AREntryReturn *);
EXTERN SV *perl_ARXMLEntryReturn( ARControlStruct *ctrl, ARXMLEntryReturn *);
EXTERN SV *perl_ARStatusList( ARControlStruct *ctrl, ARStatusList *);
#endif

EXTERN SV *perl_AREntryListFieldList( ARControlStruct *ctrl, AREntryListFieldList *p );
EXTERN SV *perl_ARInternalIdList( ARControlStruct *ctrl, ARInternalIdList *p );
EXTERN SV *perl_ARFieldValueList( ARControlStruct *ctrl, ARFieldValueList *p );
EXTERN SV *perl_ARFieldValueStruct( ARControlStruct *ctrl, ARFieldValueStruct *p );

EXTERN SV *perl_ARCharMenuList( ARControlStruct *ctrl, ARCharMenuList *p );
EXTERN SV *perl_ARCharMenuItemStruct( ARControlStruct *ctrl, ARCharMenuItemStruct *p );
EXTERN SV *perl_ARCharMenuStruct( ARControlStruct *ctrl, ARCharMenuStruct *p );

#if AR_CURRENT_API_VERSION >= 13
EXTERN SV *perl_ARActiveLinkSvcActionStruct( ARControlStruct *ctrl, ARActiveLinkSvcActionStruct *p );
#endif

EXTERN SV *perl_ARLicenseDateStruct( ARControlStruct *ctrl, ARLicenseDateStruct *p );
EXTERN SV *perl_ARLicenseValidStruct( ARControlStruct *ctrl, ARLicenseValidStruct *p );


#ifndef BSD



( run in 0.820 second using v1.01-cache-2.11-cpan-49f99fa48dc )