ARSperl

 view release on metacpan or  search on metacpan

ARS.pm  view on Meta::CPAN

	die Carp::longmess("Usage: insertValueForCurrentTransaction(ctrl, schema, qualifier, ...)\n")
	  if(!defined($q));
	
	die Carp::longmess("Usage: insertValueForCurrentTransaction(ctrl, schema, qualifier, ...)\nEven number of arguments must follow 'qualifier'\n")
	  if($#_ % 2 == 1);

	#foreach (field, value) pair {
	#    look up field
	#    if field = text then wrap value in double quotes
	#    if field = numeric then no quotes
	#    search thru qual and change field ref to value
	#}
	# compile new qual
	# pass to Expand2

	if(ref($q) eq "ARQualifierStructPtr") {
		$q = ars_perl_qualifier($c, $q);
		die Carp::longmess("ars_perl_qualifier failed: $ARS::ars_errstr")
		  unless defined($q);
	}
	if(0) {

ARS.xs  view on Meta::CPAN

#if AR_EXPORT_VERSION >= 4
		ret = ARTermination(ctrl, &status);
#else
		ret = ARTermination(&status);
#endif
		(void) ARError( ret, status);
		/*AP_FREE(ctrl); let DESTROY free it*/
	}

void
ars_GetListField(control,schema,changedsince=0,fieldType=AR_FIELD_TYPE_ALL)
	ARControlStruct *	control
	char *			schema
	unsigned long		changedsince
	unsigned long		fieldType
	PPCODE:
	{
	  ARInternalIdList idlist;
	  ARStatusList     status;
	  int              ret = 0;
	  unsigned int     i = 0;
	  (void) ARError_reset();
	  Zero(&idlist, 1, ARInternalIdList);
	  Zero(&status, 1, ARStatusList);
#if AR_EXPORT_VERSION >= 3
	  ret = ARGetListField(control,schema,
	  			fieldType,
	  			changedsince,
#if AR_CURRENT_API_VERSION >= 17
				NULL,   /* &objPropList (undocumented by BMC) */
#endif
	  			&idlist,
	  			&status);
#else
	  ret = ARGetListField(control,schema,changedsince,&idlist,&status);
#endif
#ifdef PROFILE
	  ((ars_ctrl *)control)->queries++;
#endif
	  if (!ARError( ret,status)) {
	    for (i=0; i<idlist.numItems; i++)
	      XPUSHs(sv_2mortal(newSViv(idlist.internalIdList[i])));
	    FreeARInternalIdList(&idlist,FALSE);
	  }
	}

ARS.xs  view on Meta::CPAN

		XPUSHs(sv_2mortal(newSVpv(entryList.entryList[i].entryId, 0)));
#endif
		XPUSHs(sv_2mortal(newSVpv(entryList.entryList[i].shortDesc, 0)));
	  }
	getlistentry_end:;
	  FreeARSortList(&sortList, FALSE);
	  FreeAREntryListList(&entryList,FALSE);
	}

void
ars_GetListSchema(ctrl,changedsince=0,schemaType=AR_LIST_SCHEMA_ALL,fieldPropList=NULL,name=NULL,fieldIdList=NULL)
	ARControlStruct *	ctrl
	unsigned int		changedsince
	unsigned int		schemaType
	char *			name
	AV *			fieldIdList
	ARPropList *		fieldPropList
	PPCODE:
	{
	  ARNameList   nameList;
	  ARStatusList status;
	  unsigned int i = 0;
	  int          ret = 0;

ARS.xs  view on Meta::CPAN

			SV **array_entry;
			if ((array_entry = av_fetch(fieldIdList, i, 0)) &&
			    SvROK(*array_entry)                         &&
		 	    (SvTYPE(*array_entry) == SVt_PVIV) ) {
				idList.internalIdList[i] = (unsigned long) (SvIV(*array_entry));
			} 
		}
	  }
#endif
#if AR_EXPORT_VERSION >= 3
	  ret = ARGetListSchema(ctrl, changedsince, schemaType, name, 
# if AR_EXPORT_VERSION >= 8L
				&idList, &propList,
# elif AR_EXPORT_VERSION >= 6 && AR_EXPORT_VERSION < 8L
				&idList,
# endif
				&nameList, &status);
#else
	  ret = ARGetListSchema(ctrl, changedsince, 
				&nameList, &status);
#endif
#ifdef PROFILE
	  ((ars_ctrl *)ctrl)->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_GetListContainer(ctrl,changedSince=0,attributes=0,...)
	ARControlStruct *	ctrl
	ARTimestamp		changedSince
	unsigned int		attributes
	PPCODE:
	{
	  ARStatusList 		status;
	  int          		i, ret, rv = 0;

	  (void) ARError_reset();	  
	  Zero(&status, 1, ARStatusList);

	  if(items < 1 || items > 200){  /* don't overflow clist[] */

ARS.xs  view on Meta::CPAN

			}
		}

		for(i = 4 ; i < items ; ++i){
			clist[count++] = SvIV(ST(i));
		}
		containerTypes.numItems = count;
		containerTypes.type = clist; 

		if( rv == 0 ){
			ret = ARGetListContainer(ctrl, changedSince,
					&containerTypes,
					attributes,
					&ownerObjList,
# if AR_EXPORT_VERSION >= 8L
					&propList,
# endif
					&conList, &status);
		}else{
			ARError_add( AR_RETURN_ERROR, AP_ERR_PREREVFAIL);
		}

ARS.xs  view on Meta::CPAN

	  ARInternalIdList        adminGroupList;
	  ARContainerOwnerObjList ownerObjList;
	  char                   *label = CPNULL;
	  char                   *description = CPNULL;
	  unsigned int            type;
	  ARReferenceList         references;
	  char                   *helpText = CPNULL;
	  ARAccessNameType        owner;
	  ARTimestamp             timestamp;
	  ARAccessNameType        lastChanged;
	  char                   *changeDiary = CPNULL;
	  ARPropList              objPropList;
	  int            tlist[] = {ARREF_ALL};
	  /* int                     i; */
	  ARDiaryList             diaryList;

	  (void) ARError_reset();
	  Zero(&status, 1, ARStatusList);
	  Zero(&refTypes, 1, ARReferenceTypeList);
	  Zero(&assignedGroupList, 1, ARPermissionList);
	  Zero(&groupList, 1, ARPermissionList);

ARS.xs  view on Meta::CPAN


	  ret = ARGetContainer(control, name,
			       &refTypes, 
#if AR_CURRENT_API_VERSION >= 17
			       &assignedGroupList,
#endif
			       &groupList, &adminGroupList,
			       &ownerObjList, 
			       &label, &description,
			       &type, &references, &helpText,
			       owner, &timestamp, lastChanged, &changeDiary, 
			       &objPropList, 
				   &status);
#ifdef PROFILE
	  ((ars_ctrl *)control)->queries++;
#endif
	  RETVAL = newHV();
	  sv_2mortal( (SV*) RETVAL );
	  if (!ARError( ret,status)) {
	    AV *rtypeList = newAV(), *rnameList = newAV();

ARS.xs  view on Meta::CPAN

	    if (helpText)
	      hv_store(RETVAL,  "helpText", strlen("helpText") , newSVpv(helpText, 0), 0);
	    hv_store(RETVAL,  "timestamp", strlen("timestamp") , newSViv(timestamp), 0);
	    hv_store(RETVAL,  "type", strlen("type") ,
			    newSVpv( ContainerTypeMap[type].name, strlen(ContainerTypeMap[type].name) ) ,
			    0);
	    hv_store(RETVAL,  "name", strlen("name") , newSVpv(name, 0), 0);
	    hv_store(RETVAL,  "owner", strlen("owner") , newSVpv(owner, 0), 0);
	    hv_store(RETVAL,  "lastChanged", strlen("lastChanged") ,
		     newSVpv(lastChanged, 0), 0);
	    if (changeDiary) {
		ret = ARDecodeDiary(control, changeDiary, &diaryList, &status);
		if (!ARError(ret, status)) {
			hv_store(RETVAL,  "changeDiary", strlen("changeDiary") ,
				perl_ARList(control, (ARList *)&diaryList,
				(ARS_fn)perl_diary,
				sizeof(ARDiaryStruct)), 0);
			FreeARDiaryList(&diaryList, FALSE);
		}
	    }
	    hv_store(RETVAL,  "referenceList", strlen("referenceList") ,
		     perl_ARReferenceList(control, &references), 0);
	    if (label)
	      hv_store(RETVAL,  "label", strlen("label") , newSVpv(label, 0), 0);

ARS.xs  view on Meta::CPAN

	      hv_store(RETVAL,  "description", strlen("description") , newSVpv(description, 0), 0);
	    hv_store(RETVAL,  "numReferences", strlen("numReferences") , newSViv(references.numItems), 0);

	    FreeARPermissionList(&groupList,FALSE);
	    FreeARInternalIdList(&adminGroupList,FALSE);
	    FreeARContainerOwnerObjList(&ownerObjList,FALSE);
	    FreeARReferenceList(&references,FALSE);
	    FreeARPropList(&objPropList, FALSE);
	    if(helpText)
	      	arsperl_FreeARTextString(helpText);
	    if(changeDiary)
	      	arsperl_FreeARTextString(changeDiary);
	    if(label)
	      	arsperl_FreeARTextString(label);
	    if(description)
	      	arsperl_FreeARTextString(description);
	  }
	}
	OUTPUT:
	RETVAL

void

ARS.xs  view on Meta::CPAN

	  ARInternalId     focusField;
	  unsigned int     enable = 0;
	  ARActiveLinkActionList actionList;
	  ARActiveLinkActionList elseList;
	  ARWorkflowConnectStruct  schemaList;
	  ARPropList       objPropList;
	  char            *helpText = CPNULL;
	  ARTimestamp      timestamp;
	  ARAccessNameType    owner;
	  ARAccessNameType    lastChanged;
	  char            *changeDiary = CPNULL;
	  ARStatusList     status;
	  SV              *ref;
	  ARQualifierStruct *query;
	  ARDiaryList      diaryList;

	  AMALLOCNN(query,1,ARQualifierStruct);

	  (void) ARError_reset();
	  Zero(&assignedGroupList, 1, ARInternalIdList);
	  Zero(&groupList, 1, ARInternalIdList);

ARS.xs  view on Meta::CPAN

	  Zero(&objPropList, 1, ARPropList);

	  ret = ARGetActiveLink(ctrl, name, &order, 
				&schemaList,  /* new in 4.5 */
#if AR_CURRENT_API_VERSION >= 17
				&assignedGroupList,
#endif
				&groupList,
				&executeMask, &controlField, &focusField,
				&enable, query, &actionList, &elseList, &helpText,
				&timestamp, owner, lastChanged, &changeDiary, 
				&objPropList, /* new in 4.5 */
#if AR_CURRENT_API_VERSION >= 14
				NULL,         /* errorActlinkOptions, reserved for future use */
				NULL,         /* errorActlinkName,    reserved for future use */
#endif
				&status);
#ifdef PROFILE
	  ((ars_ctrl *)ctrl)->queries++;
#endif

ARS.xs  view on Meta::CPAN

		hv_store(RETVAL,  "elseList", strlen("elseList") ,
		     perl_ARList(ctrl, 
				 (ARList *)&elseList,
				 (ARS_fn)perl_ARActiveLinkActionStruct,
				 sizeof(ARActiveLinkActionStruct)), 0);
		if (helpText)
			hv_store(RETVAL,  "helpText", strlen("helpText") , newSVpv(helpText,0), 0);
		hv_store(RETVAL,  "timestamp", strlen("timestamp") ,  newSViv(timestamp), 0);
		hv_store(RETVAL,  "owner", strlen("owner") , newSVpv(owner,0), 0);
		hv_store(RETVAL,  "lastChanged", strlen("lastChanged") , newSVpv(lastChanged,0), 0);
		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);
			}
	    }
	    FreeARInternalIdList(&groupList,FALSE);
	    FreeARActiveLinkActionList(&actionList,FALSE);
	    FreeARActiveLinkActionList(&elseList,FALSE);
	    FreeARWorkflowConnectStruct(&schemaList, FALSE);
	    FreeARPropList(&objPropList, FALSE);
	    if(helpText) arsperl_FreeARTextString(helpText);
	    if(changeDiary) arsperl_FreeARTextString(changeDiary);
	  
	    }else{
      XSRETURN_UNDEF;
	  }
	}
	OUTPUT:
	RETVAL



ARS.xs  view on Meta::CPAN

ars_GetFilter(ctrl,name)
	ARControlStruct *	ctrl
	char *			name
	CODE:
	{
	  int          ret;
	  unsigned int order;
	  unsigned int opSet;
	  unsigned int enable;
	  char        *helpText = CPNULL;
	  char        *changeDiary = CPNULL;
	  ARFilterActionList actionList;
	  ARFilterActionList elseList;
	  ARTimestamp timestamp;
	  ARAccessNameType  owner;
	  ARAccessNameType  lastChanged;
	  ARStatusList status;
	  SV         *ref;
	  ARQualifierStruct *query;
	  ARDiaryList      diaryList;
	  ARWorkflowConnectStruct  schemaList;

ARS.xs  view on Meta::CPAN

	  Zero(&status, 1,ARStatusList);
	  Zero(&schemaList, 1, ARWorkflowConnectStruct);
	  Zero(&objPropList, 1, ARPropList);
#if AR_CURRENT_API_VERSION >= 13
	  Zero(&errorFilterName, 1,ARNameType);
#endif
	  ret = ARGetFilter(ctrl, name, &order, 
			    &schemaList,
			    &opSet, &enable, 
			    query, &actionList, &elseList, &helpText,
			    &timestamp, owner, lastChanged, &changeDiary,
			    &objPropList,
#if AR_CURRENT_API_VERSION >= 13
			    &errorFilterOptions,
			    errorFilterName,
#endif
			    &status);
#ifdef PROFILE
	  ((ars_ctrl *)ctrl)->queries++;
#endif
	  if (!ARError( ret,status)) {

ARS.xs  view on Meta::CPAN

	    hv_store(RETVAL,  "elseList", strlen("elseList") ,
		     perl_ARList(ctrl, 
				 (ARList *)&elseList,
				 (ARS_fn)perl_ARFilterActionStruct,
				 sizeof(ARFilterActionStruct)), 0);
	    if(helpText)
		hv_store(RETVAL,  "helpText", strlen("helpText") , newSVpv(helpText, 0), 0);
	    hv_store(RETVAL,  "timestamp", strlen("timestamp") , newSViv(timestamp), 0);
	    hv_store(RETVAL,  "owner", strlen("owner") , newSVpv(owner, 0), 0);
	    hv_store(RETVAL,  "lastChanged", strlen("lastChanged") , newSVpv(lastChanged, 0), 0);
	    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);
		}
	    }
#if AR_CURRENT_API_VERSION >= 13
	    hv_store(RETVAL,  "errorFilterOptions", strlen("errorFilterOptions") , newSViv(errorFilterOptions), 0);
	    hv_store(RETVAL,  "errorFilterName",    strlen("errorFilterName") ,    newSVpv(errorFilterName, 0), 0);
#endif
	    FreeARFilterActionList(&actionList,FALSE);
	    FreeARFilterActionList(&elseList,FALSE);
	    FreeARWorkflowConnectStruct(&schemaList, FALSE);
	    FreeARPropList(&objPropList, FALSE);
	    if(helpText) {
	      	AP_FREE(helpText);
	    }
	    if(changeDiary) {
	      	AP_FREE(changeDiary);
	    }
	  }else{
	  XSRETURN_UNDEF;
	  }
	}
	OUTPUT:
	RETVAL

void
ars_GetServerStatistics(ctrl,...)

ARS.xs  view on Meta::CPAN

	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);
		hv_store(RETVAL,  "timestamp", strlen("timestamp") , newSViv(timestamp), 0);
		hv_store(RETVAL,  "owner", strlen("owner") , newSVpv(owner, 0), 0);
		hv_store(RETVAL,  "lastChanged", strlen("lastChanged") , newSVpv(lastChanged, 0), 0);
	        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;
		}

ARS.xs  view on Meta::CPAN

				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)

ARS.xs  view on Meta::CPAN

#if AR_EXPORT_VERSION >= 9L
      ARAuditInfoStruct    auditInfo;
#endif
	  ARInternalIdList     adminGroupList;
	  AREntryListFieldList getListFields;
	  ARIndexList          indexList;
	  char                *helpText = CPNULL;
	  ARTimestamp          timestamp;
	  ARAccessNameType           owner;
	  ARAccessNameType           lastChanged;
	  char                *changeDiary = CPNULL;
	  ARDiaryList          diaryList;
	  ARCompoundSchema     schema;
	  ARSortList           sortList;
	  ARPropList           objPropList;
	  ARNameType           defaultVui;

	  (void) ARError_reset();
	  Zero(&status, 1,  ARStatusList);
	  Zero(&assignedGroupList, 1, ARPermissionList);
	  Zero(&groupList, 1, ARPermissionList);

ARS.xs  view on Meta::CPAN

			    &groupList, &adminGroupList, &getListFields, 
			    &sortList, &indexList, 
#if AR_EXPORT_VERSION >= 8L
                            &infoStruct,
#endif
#if AR_EXPORT_VERSION >= 9L
                            &auditInfo,
#endif
			    defaultVui,
			    &helpText, &timestamp, owner, 
			    lastChanged, &changeDiary, 
			    &objPropList,
			    &status);
#ifdef PROFILE
	  ((ars_ctrl *)ctrl)->queries++;
#endif
	  if (!ARError( ret,status)) {
#if AR_EXPORT_VERSION >= 5
		hv_store(RETVAL,  "objPropList", strlen("objPropList") ,
			 perl_ARPropList(ctrl, &objPropList), 0);
#endif

ARS.xs  view on Meta::CPAN

		     perl_ARList(ctrl, (ARList *)&indexList,
				 (ARS_fn)perl_ARIndexStruct,
				 sizeof(ARIndexStruct)), 0);
	    if (helpText)
	      hv_store(RETVAL,  "helpText", strlen("helpText") , newSVpv(helpText, 0), 0);
	    hv_store(RETVAL,  "timestamp", strlen("timestamp") , newSViv(timestamp), 0);
	    hv_store(RETVAL,  "owner", strlen("owner") , newSVpv(owner, 0), 0);
	    hv_store(RETVAL,  "lastChanged", strlen("lastChanged") ,
		     newSVpv(lastChanged, 0), 0);
	    hv_store(RETVAL,  "name", strlen("name") , newSVpv(name, 0), 0);
	    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);
		}
	    }

	    hv_store(RETVAL,  "schema", strlen("schema") , 
			perl_ARCompoundSchema(ctrl, &schema), 0);
	    hv_store(RETVAL,  "sortList", strlen("sortList") , 

ARS.xs  view on Meta::CPAN

	    hv_store(RETVAL, "auditInfo", strlen("auditInfo") , 
			perl_ARAuditInfoStruct(ctrl, &auditInfo), 0);
#endif
	    FreeARPermissionList(&groupList,FALSE);
	    FreeARInternalIdList(&adminGroupList,FALSE);
	    FreeAREntryListFieldList(&getListFields,FALSE);
	    FreeARIndexList(&indexList,FALSE);
	    if(helpText) {
	      	AP_FREE(helpText);
	    }
	    if(changeDiary) {
	      	AP_FREE(changeDiary);
	    }
	    FreeARCompoundSchema(&schema,FALSE);
	    FreeARSortList(&sortList,FALSE);
	  }
	}
	OUTPUT:
	RETVAL

void
ars_GetListActiveLink(ctrl,schema=NULL,changedSince=0)
	ARControlStruct *	ctrl
	char *			schema
	int			changedSince
	PPCODE:
	{
	  ARNameList   nameList;
	  ARStatusList status;
          ARPropList   propList;
	  int          ret = 0;
          unsigned int i = 0;

	  (void) ARError_reset();
	  Zero(&status, 1,ARStatusList);
	  Zero(&nameList, 1, ARNameList);
	  Zero(&propList, 1, ARPropList);
#if AR_EXPORT_VERSION >= 8L
	  Zero(&propList, 1, ARPropList);
#endif
	  ret=ARGetListActiveLink(ctrl,schema,changedSince,
#if AR_EXPORT_VERSION >= 8L
                     &propList,
#endif
                     &nameList,&status);
#ifdef PROFILE
	  ((ars_ctrl *)ctrl)->queries++;
#endif
	  if (! ARError( ret,status)) {
	    for (i=0; i<nameList.numItems; i++)
	      XPUSHs(sv_2mortal(newSVpv(nameList.nameList[i],0)));

ARS.xs  view on Meta::CPAN

	  ARPermissionList      assignedGroupList;
	  ARPermissionList      permissions;
	  ARFieldLimitStruct    limit;
	  ARNameType            fieldName;
	  ARFieldMappingStruct  fieldMap;
	  ARDisplayInstanceList displayList;
	  char                 *helpText = CPNULL;
	  ARTimestamp           timestamp;
	  ARAccessNameType            owner;
	  ARAccessNameType            lastChanged;
	  char                 *changeDiary = CPNULL;
	  ARDiaryList           diaryList;
	  ARPropList            objPropList;

	  (void) ARError_reset();
	  Zero(&Status,      1, ARStatusList);
	  Zero(&defaultVal,  1, ARValueStruct);
	  Zero(&assignedGroupList, 1, ARPermissionList);
	  Zero(&permissions, 1, ARPermissionList);
	  Zero(&limit,       1, ARFieldLimitStruct);

	  Zero(fieldName,    1, ARNameType);
	  Zero(&fieldMap,    1, ARFieldMappingStruct);
	  Zero(&displayList, 1, ARDisplayInstanceList);

	  Zero(&timestamp,   1, ARTimestamp);
	  Zero(owner,        1, ARAccessNameType);
	  Zero(lastChanged,  1, ARAccessNameType);
	  Zero(&diaryList,   1, ARDiaryList);
	  Zero(&objPropList, 1, ARPropList);
#if AR_CURRENT_API_VERSION >= 17
	  ret = ARGetFieldCached(ctrl, schema, id, fieldName, &fieldMap, &dataType, &option, &createMode, &fieldOption, &defaultVal, &assignedGroupList, &permissions, &limit, &displayList, &helpText, &timestamp, owner, lastChanged, &changeDiary, &objPropLis...
#elif AR_CURRENT_API_VERSION >= 12
	  ret = ARGetFieldCached(ctrl, schema, id, fieldName, &fieldMap, &dataType, &option, &createMode, &fieldOption, &defaultVal, &permissions, &limit, &displayList, &helpText, &timestamp, owner, lastChanged, &changeDiary, &Status);
#else
	  ret = ARGetFieldCached(ctrl, schema, id, fieldName, &fieldMap, &dataType, &option, &createMode, &defaultVal, &permissions, &limit, &displayList, &helpText, &timestamp, owner, lastChanged, &changeDiary, &Status);
#endif
#ifdef PROFILE
	  ((ars_ctrl *)ctrl)->queries++;
#endif
	  if (! ARError( ret, Status)) {
	  RETVAL = newHV();
	  sv_2mortal( (SV*) RETVAL );
	    /* store field id for convenience */
	    hv_store(RETVAL,  "fieldId", strlen("fieldId") , newSViv(id), 0);
	    if (createMode == AR_FIELD_OPEN_AT_CREATE)

ARS.xs  view on Meta::CPAN

		     perl_ARDisplayInstanceList(ctrl, &displayList), 0);
	    if (helpText)
	      hv_store(RETVAL,  "helpText", strlen("helpText") ,
		       newSVpv(helpText, 0), 0);
	    hv_store(RETVAL,  "timestamp", strlen("timestamp") , 
		     newSViv(timestamp), 0);
	    hv_store(RETVAL,  "owner", strlen("owner") ,
		     newSVpv(owner, 0), 0);
	    hv_store(RETVAL,  "lastChanged", strlen("lastChanged") ,
		     newSVpv(lastChanged, 0), 0);
	    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);
		}
	    }
	    FreeARFieldLimitStruct(&limit,FALSE);
	    FreeARDisplayInstanceList(&displayList,FALSE);
	    if(helpText) {
	      	/* AP_FREE(helpText);   */ /* TS 20060207 disabled bc of memory errors with 5.8.8 */
	    }
	    if(changeDiary) {
	      	AP_FREE(changeDiary);
	    }
	  }else{
	   XSRETURN_UNDEF;
	  }
	}
	OUTPUT:
	RETVAL


HV*

ARS.xs  view on Meta::CPAN

#if AR_CURRENT_API_VERSION >= 14
	  unsigned int         enable =  0;
	  ARImageDataStruct    content;
	  char                *imageType;
	  ARTimestamp          timestamp;
	  char                *checkSum = CPNULL;
	  char                *description = CPNULL;
	  char                *helpText    = CPNULL;
	  ARAccessNameType     owner;
	  ARAccessNameType     lastChanged;
      char                *changeDiary = CPNULL;
	  ARPropList           objPropList;
	  ARDiaryList           diaryList;
	  int                  ret;

	  (void) ARError_reset();
	  Zero(&status, 1,ARStatusList);
	  Zero(&content, 1, ARImageDataStruct);
	  Zero(&timestamp, 1, ARTimestamp);
	  Zero(owner, 1, ARAccessNameType);
	  Zero(&objPropList, 1, ARPropList);

ARS.xs  view on Meta::CPAN


	  ret = ARGetImage(ctrl, name, 
		 		&content,
		 		&imageType,
		 		&timestamp,
		 		&checkSum,
		 		&description,
		 		&helpText,
		 		owner,
		 		lastChanged,
		 		&changeDiary,
		 		&objPropList,
		 		&status );

	  if(!ARError( ret, status)) {
	  	RETVAL = newHV();
	    sv_2mortal( (SV*) RETVAL );
	    hv_store(RETVAL,  "name", strlen("name"), newSVpv(name, 0), 0);
		hv_store(RETVAL,  "imageData", strlen("imageData"),
			perl_ARImageDataStruct(ctrl, &content), 0);
	    hv_store(RETVAL,  "imageType", strlen("imageType"), newSVpv(imageType, 0), 0);

ARS.xs  view on Meta::CPAN

	    hv_store(RETVAL,  "timestamp", strlen("timestamp") , newSViv(timestamp), 0);
	    hv_store(RETVAL,  "checkSum", strlen("checkSum") , newSVpv(checkSum, 0), 0);
	    if( description ){
	      hv_store(RETVAL,  "description", strlen("description") , newSVpv(description, 0), 0);
	    }
	    if( helpText ){
	      hv_store(RETVAL,  "helpText", strlen("helpText") , newSVpv(helpText, 0), 0);
	    }
	    hv_store(RETVAL,  "owner", strlen("owner") , newSVpv(owner, 0), 0);
	    hv_store(RETVAL,  "lastChanged", strlen("lastChanged") , newSVpv(lastChanged, 0), 0);
	    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);
		  }
	    }

	    if(helpText)    {  AP_FREE(helpText);  }
	    if(changeDiary) {  AP_FREE(changeDiary);  }
	    if(imageType)   {  AP_FREE(imageType);  }
	    if(checkSum)    { 	AP_FREE(checkSum);  }
	    if(description) {  AP_FREE(description);  }
	    FreeARImageDataStruct(&content, FALSE);
	    FreeARPropList(&objPropList, FALSE);
	  }else{
	    XSRETURN_UNDEF;
	  }
#else	/* prior to ARS 7.5 */
	  (void) ARError_reset();

ARS.xs  view on Meta::CPAN

		if (structItems != NULL)
		{
			AP_FREE(structItems->structItemList);
			AP_FREE(structItems);
		}
	}
	OUTPUT:
	RETVAL

void
ars_GetListFilter(control,schema=NULL,changedsince=0)
	ARControlStruct *	control
	char *			schema
	unsigned long		changedsince
	PPCODE:
	{
	  ARNameList   nameList;
	  ARStatusList status;
#if AR_EXPORT_VERSION >= 8L
	  ARPropList   propList;
#endif
	  int          ret = 0;
	  unsigned int i = 0;

	  (void) ARError_reset();
#if AR_EXPORT_VERSION >= 8L
	  Zero(&propList, 1, ARPropList);
#endif
	  Zero(&nameList, 1, ARNameList);
	  Zero(&status, 1,ARStatusList);
	  ret = ARGetListFilter(control,schema,changedsince,
#if AR_EXPORT_VERSION >= 8L
                               &propList,
#endif
                               &nameList,&status);
#ifdef PROFILE
	  ((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_GetListEscalation(control,schema=NULL,changedsince=0)
	ARControlStruct *	control
	char *			schema
	unsigned long		changedsince
	PPCODE:
	{
	  ARNameList   nameList;
	  ARStatusList status;
	  ARPropList   propList;
	  int          ret = 0;
	  unsigned int i = 0;

	  (void) ARError_reset();
#if AR_EXPORT_VERSION >= 8L
	  Zero(&propList, 1,ARPropList);
#endif
	  Zero(&nameList, 1, ARNameList);
	  Zero(&status, 1,ARStatusList);
	  ret = ARGetListEscalation(control,schema,changedsince,
#if AR_EXPORT_VERSION >= 8L
                                    &propList,
#endif
                                    &nameList,&status);
#ifdef PROFILE
	  ((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;
          ARNameList   actLinkNameList;
	  int          ret = 0;
          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++)
	      XPUSHs(sv_2mortal(newSVpv(nameList.nameList[i], 0)));
	    FreeARNameList(&nameList,FALSE);
	  }
	}

void
ars_GetListImage(ctrl,schema=NULL,changedSince=0,imageType=NULL)
	ARControlStruct *       ctrl
    SV *                    schema
	ARTimestamp		           changedSince
	char *                  imageType
	PPCODE:
	{
	  ARStatusList     status;
#if AR_CURRENT_API_VERSION >= 14
	  ARNameList       schemaList;
	  ARNameList      *schemaListPtr = NULL;
	  ARNameList       nameList;
	  ARPropList       propList;
	  int              ret = 0, rv = 0;

ARS.xs  view on Meta::CPAN

	      schemaList.numItems = 1;
	      schemaList.nameList = (ARNameType*) MALLOCNN(sizeof(ARNameType) * 1);
	      strncpy( schemaList.nameList[0], str, AR_MAX_NAME_SIZE );
	    }
	    schemaListPtr = &schemaList;
	  }

	  if( rv == 0 ){
	    ret = ARGetListImage( ctrl,
	    		    schemaListPtr,
	    		    changedSince,
	    		    imageType,
#if AR_CURRENT_API_VERSION >= 19
	    		    &propList, // at the moment we don't want to search for specific properties
#endif
	    		    &nameList,
	    		    &status );
	  }else{
		  ARError_add( AR_RETURN_ERROR, AP_ERR_PREREVFAIL);
	  }

ARS.xs  view on Meta::CPAN

	{
	  ARStatusList         status;
	  AREscalationTmStruct escalationTm;
	  unsigned int         enable =  0;
	  ARFilterActionList   actionList;
	  ARFilterActionList   elseList;
	  char                *helpText = CPNULL;
	  ARTimestamp          timestamp;
	  ARAccessNameType     owner;
	  ARAccessNameType     lastChanged;
      char                *changeDiary = CPNULL;
	  SV                  *ref;
	  int                  ret;
	  ARQualifierStruct   *query = MALLOCNN(sizeof(ARQualifierStruct));
	  ARDiaryList          diaryList;
	  ARWorkflowConnectStruct schemaList;
	  ARPropList              objPropList;


	  (void) ARError_reset();
	  Zero(&status, 1,ARStatusList);

ARS.xs  view on Meta::CPAN

	  Zero(&timestamp, 1, ARTimestamp);
	  Zero(owner, 1, ARAccessNameType);
	  Zero(lastChanged, 1, ARAccessNameType);
	  Zero(&diaryList, 1, ARDiaryList);
	  Zero(&elseList, 1,ARFilterActionList);
	  Zero(&schemaList, 1, ARWorkflowConnectStruct);
	  Zero(&objPropList, 1, ARPropList);

	  ret = ARGetEscalation(ctrl, name, &escalationTm, &schemaList, &enable,
			query, &actionList, &elseList, &helpText, &timestamp,
			owner, lastChanged, &changeDiary, &objPropList, &status);
#ifdef PROFILE
	  ((ars_ctrl *)ctrl)->queries++;
#endif
	  if(!ARError( ret, status)) {
	  	  RETVAL = newHV();
	  sv_2mortal( (SV*) RETVAL );
	     hv_store(RETVAL,  "name", strlen("name") , newSVpv(name, 0), 0);
		hv_store(RETVAL,  "schemaList", strlen("schemaList") , /* WorkflowConnectStruct */
			perl_ARNameList(ctrl, schemaList.u.schemaList), 0);
		hv_store(RETVAL,  "objPropList", strlen("objPropList") ,
			perl_ARPropList(ctrl, &objPropList), 0);
	     hv_store(RETVAL,  "enable", strlen("enable") , newSViv(enable), 0);
	     hv_store(RETVAL,  "timestamp", strlen("timestamp") , newSViv(timestamp), 0);
	     if(helpText)
	        hv_store(RETVAL,  "helpText", strlen("helpText") , newSVpv(helpText, 0), 0);
	     hv_store(RETVAL,  "owner", strlen("owner") , newSVpv(owner, 0), 0);
	     hv_store(RETVAL,  "lastChanged", strlen("lastChanged") , newSVpv(lastChanged, 0), 0);
	     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);
		}
	     }
	     ref = newSViv(0);
	     sv_setref_pv(ref, "ARQualifierStructPtr", (void *)query);
	     hv_store(RETVAL,  "query", strlen("query") , ref, 0);

ARS.xs  view on Meta::CPAN

			newSViv(escalationTm.u.date.minute), 0);
		break;
	     }
	     FreeARFilterActionList(&actionList, FALSE);
	     FreeARFilterActionList(&elseList, FALSE);
	     FreeARWorkflowConnectStruct(&schemaList, FALSE);
	     FreeARPropList(&objPropList, FALSE);
	     if(helpText) {
	       	arsperl_FreeARTextString(helpText);
	     }
	     if(changeDiary) {
	       	arsperl_FreeARTextString(changeDiary);
	     }
	  }else{
	   XSRETURN_UNDEF;
	  }
	}
	OUTPUT:
	RETVAL

HV *
ars_GetFullTextInfo(ctrl)

ARS.xs  view on Meta::CPAN

	  (void) ARError_add( AR_RETURN_ERROR, AP_ERR_DEPRECATED, "Not available in pre-2.1 ARS");
#endif
	  if(RETVAL != NULL) {
			XPUSHs(sv_2mortal(newRV_noinc((SV *)RETVAL)));
	  } else {
			XPUSHs(sv_2mortal(newSViv(0)));
	  }
	}

void
ars_GetListUser(ctrl, userListType=AR_USER_LIST_MYSELF,changedSince=0)
	ARControlStruct *	ctrl
	unsigned int		userListType
	ARTimestamp		changedSince
	PPCODE:
	{
	  ARStatusList   status;
	  ARUserInfoList userList;
	  int            ret = 0;

	  (void) ARError_reset();
	  Zero(&status, 1,ARStatusList);
	  Zero(&userList, 1, ARUserInfoList);
	  ret = ARGetListUser(ctrl, userListType, 
#if AR_EXPORT_VERSION >= 6
				changedSince,
#endif
				&userList, &status);
#ifdef PROFILE
	  ((ars_ctrl *)ctrl)->queries++;
#endif
	  if(!ARError( ret, status)) {
	     unsigned int i, j;
	     for(i = 0; i < userList.numItems; i++) {
	        HV *userInfo           = newHV();
		AV *licenseTag         = newAV(),

ARS.xs  view on Meta::CPAN

		hv_store(userInfo,  "licenseTag", strlen("licenseTag") , newRV_noinc((SV *)licenseTag), 0);
		hv_store(userInfo,  "licenseType", strlen("licenseType") , newRV_noinc((SV *)licenseType), 0);
		hv_store(userInfo,  "currentLicenseType", strlen("currentLicenseType") , newRV_noinc((SV *)currentLicenseType), 0);
	        XPUSHs(sv_2mortal(newRV_noinc((SV *)userInfo)));
	     }
	     FreeARUserInfoList(&userList, FALSE);
	  }
	}

void
ars_GetListVUI(ctrl, schema, changedSince=0)
	ARControlStruct *	ctrl
	char *			schema
	unsigned int		changedSince
	PPCODE:
	{
#if AR_EXPORT_VERSION >= 3
	  ARStatusList     status;
	  ARInternalIdList idList;
	  int              ret = 0;
      unsigned int     i = 0;

	  (void) ARError_reset();
	  Zero(&status, 1,ARStatusList);
	  Zero(&idList, 1, ARInternalIdList);

	  ret = ARGetListVUI(ctrl, schema, 
				changedSince,
#if AR_CURRENT_API_VERSION >= 17
				NULL,     /* &objPropList (undocumented by BMC) */
#endif
				&idList,
				&status);
#ifdef PROFILE
	  ((ars_ctrl *)ctrl)->queries++;
#endif
	  if(!ARError( ret, status)) {
	    for(i = 0 ; i < idList.numItems ; i++) {

ARS.xs  view on Meta::CPAN

	CODE:
	{
#if AR_EXPORT_VERSION >= 3
	  ARStatusList status;
	  ARNameType   vuiName;
	  ARPropList   dPropList;
	  char        *helpText = CPNULL;
	  ARTimestamp  timestamp;
	  ARAccessNameType   owner;
	  ARAccessNameType   lastChanged;
	  char        *changeDiary = CPNULL;
	  int          ret = 0;
	  ARDiaryList  diaryList;
	  ARPropList   objPropList;
# if AR_EXPORT_VERSION >= 6
	  unsigned int vuiType = 0;
	  ARLocaleType locale;
	  Zero(locale, 1, ARLocaleType);
# endif
	  RETVAL = newHV();
	  sv_2mortal( (SV*) RETVAL );

ARS.xs  view on Meta::CPAN

	  Zero(&dPropList, 1, ARPropList);
	  Zero(&objPropList, 1, ARPropList);
	  Zero(&timestamp, 1, ARTimestamp);
	  Zero(owner, 1, ARAccessNameType);
	  Zero(lastChanged, 1, ARAccessNameType);
	  ret = ARGetVUI(ctrl, schema, vuiId, vuiName,
# if AR_EXPORT_VERSION >= 6
			 locale, &vuiType,
# endif
			 &dPropList, &helpText, 
			 &timestamp, owner, lastChanged, &changeDiary,
#if AR_CURRENT_API_VERSION >= 17
			 &objPropList,
#endif
			 &status);
# ifdef PROFILE
	  ((ars_ctrl *)ctrl)->queries++;
# endif
	  if(!ARError( ret, status)) {
# if AR_EXPORT_VERSION >= 6
	     hv_store(RETVAL, "locale", strlen("locale"), newSVpv(locale, 0), 0);
	     hv_store(RETVAL, "vuiType", strlen("vuiType"), newSViv(vuiType), 0);
# endif
	     hv_store(RETVAL,  "schema", strlen("schema") , newSVpv(schema, 0), 0);
	     hv_store(RETVAL,  "vuiId", strlen("vuiId") , newSViv(vuiId), 0);
	     hv_store(RETVAL,  "vuiName", strlen("vuiName") , newSVpv(vuiName, 0), 0);
	     hv_store(RETVAL,  "owner", strlen("owner") , newSVpv(owner, 0), 0);
	     if(helpText)
	        hv_store(RETVAL,  "helpText", strlen("helpText") , newSVpv(helpText, 0), 0);
	     hv_store(RETVAL,  "lastChanged", strlen("lastChanged") , newSVpv(lastChanged, 0), 0);
	     if (changeDiary) {
#if AR_EXPORT_VERSION >= 4
		ret = ARDecodeDiary(ctrl, changeDiary, &diaryList, &status);
#else
		ret = ARDecodeDiary(changeDiary, &diaryList, &status);
#endif
		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);
		}
	     }
	     hv_store(RETVAL,  "timestamp", strlen("timestamp") , newSViv(timestamp), 0);
	     hv_store(RETVAL,  "props", strlen("props") ,
		 perl_ARList( ctrl,

ARS.xs  view on Meta::CPAN

		 perl_ARList( ctrl,
			    (ARList *)&objPropList,
			    (ARS_fn)perl_ARPropStruct,
			    sizeof(ARPropStruct)), 0);
	  }
	  FreeARPropList(&dPropList, FALSE);
	  FreeARPropList(&objPropList, FALSE);
	  if(helpText) {
	    	AP_FREE(helpText);
	  }
	  if(changeDiary) {
	    	AP_FREE(changeDiary);
	  }
#else /* ars 2.x */
	  (void) ARError_reset();
	  (void) ARError_add( AR_RETURN_ERROR, AP_ERR_DEPRECATED, "Not available in 2.x");
	  RETVAL = newHV();
#endif

	}
	OUTPUT:
	RETVAL

ARS.xs  view on Meta::CPAN

	{
#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);

ARS.xs  view on Meta::CPAN

		if( pSvTemp && *pSvTemp && SvTYPE(*pSvTemp) != SVt_NULL ){
			rv += rev_ARPropList( ctrl, menuDef, "objPropList", &objPropList );
		}

		if( hv_exists(menuDef,"helpText",8) ){
			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;
		}else{ 
			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
	}

ARS.xs  view on Meta::CPAN

		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);

ARS.xs  view on Meta::CPAN

			objPropList = (ARPropList*) MALLOCNN( sizeof(ARPropList) );
			rv += rev_ARPropList( ctrl, menuDef, "objPropList", objPropList );
		}

		if( hv_exists(menuDef,"helpText",8) ){
			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;
		}else{ 
			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, 

ARS.xs  view on Meta::CPAN

		unsigned int createMode = AR_FIELD_PROTECTED_AT_CREATE;
#if AR_EXPORT_VERSION >= 9L
		unsigned int fieldOption;
#endif
		ARValueStruct *defaultVal = NULL;
		ARPermissionList permissions;
		ARFieldLimitStruct *limit = NULL;
		ARDisplayInstanceList dInstanceList;
		char *helpText = NULL;
		ARAccessNameType owner;
		char *changeDiary = NULL;
		ARPropList *objPropList = NULL;
		ARStatusList status;
		HV *fieldDef = NULL;
		SV **pSvTemp;
		char strTemp[STR_TEMP_SIZE+1];

		RETVAL = 0; /* assume error */
		(void) ARError_reset();
		Zero(owner, 1,ARAccessNameType);
		Zero(fieldName, 1,ARNameType);

ARS.xs  view on Meta::CPAN

#endif
		rv += rev_ARDisplayInstanceList( ctrl, fieldDef, "displayInstanceList", &dInstanceList );

		if( hv_exists(fieldDef,"helpText",8) ){
			rv += strmakHVal( fieldDef, "helpText", &helpText ); 
		}
		if( hv_exists(fieldDef,"owner",5) ){
			rv += strcpyHVal( fieldDef, "owner", owner, AR_MAX_ACCESS_NAME_SIZE ); 
		}

		if( hv_exists(fieldDef,"changeDiary",11) ){
			rv += strmakHVal( fieldDef, "changeDiary", &changeDiary );
		}

		if( rv == 0 ){
			ret = ARCreateField( ctrl,
				schema,
				&fieldId,
				reservedIdOK,
				fieldName,
				&fieldMap,
				dataType,

ARS.xs  view on Meta::CPAN

				createMode,
#if AR_EXPORT_VERSION >= 9L
				fieldOption,
#endif
				defaultVal,
				&permissions,
				limit,
				&dInstanceList,
				helpText,
				owner,
				changeDiary,
#if AR_CURRENT_API_VERSION >= 17
				objPropList,
#endif
				&status );

			RETVAL = ARError(ret,status) ? 0 : fieldId;
		}else{ 
			ARError_add( AR_RETURN_ERROR, AP_ERR_PREREVFAIL);
			RETVAL = 0;
		}

	    if( helpText != NULL ){
			AP_FREE( helpText );
		}
	    if( changeDiary != NULL ){
			AP_FREE( changeDiary );
		}
		if( defaultVal != NULL ){
			FreeARValueStruct( defaultVal, TRUE );
		}
		FreeARPermissionList( &permissions, FALSE );
		if( limit != NULL ){
			FreeARFieldLimitStruct( limit, TRUE );
		}
		FreeARDisplayInstanceList( &dInstanceList, FALSE );
		/*

ARS.xs  view on Meta::CPAN

		ARValueStruct *defaultVal = NULL;
		ARPermissionList *permissions = NULL;
		ARFieldLimitStruct *limit = NULL;
		ARDisplayInstanceList *dInstanceList = NULL;
		char *helpText = NULL;
		ARAccessNameType owner;
		char *ownerPtr = NULL;
#if AR_EXPORT_VERSION >= 9L
		unsigned int	setFieldOptions = 0;
#endif
		char *changeDiary = NULL;
		ARPropList *objPropList = NULL;
		ARStatusList status;
		HV *fieldDef = NULL;
		SV **pSvTemp;
		char strTemp[STR_TEMP_SIZE+1];

		RETVAL = 0; /* assume error */
		(void) ARError_reset();
		Zero(fieldName, 1,ARNameType);
		Zero(owner, 1,ARAccessNameType);

ARS.xs  view on Meta::CPAN

		if( hv_exists(fieldDef,"owner",5) ){
			rv += strcpyHVal( fieldDef, "owner", owner, AR_MAX_ACCESS_NAME_SIZE ); 
			ownerPtr = owner;
		}
#if AR_EXPORT_VERSION >= 9L
		pSvTemp = hv_fetch( fieldDef, "setFieldOptions", strlen("setFieldOptions") , 0 );
		if( pSvTemp && *pSvTemp && SvTYPE(*pSvTemp) != SVt_NULL ){
			rv += uintcpyHVal( fieldDef, "setFieldOptions", &setFieldOptions );
		}
#endif
		if( hv_exists(fieldDef,"changeDiary",11) ){
			rv += strmakHVal( fieldDef, "changeDiary", &changeDiary );
		}

		if( rv == 0 ){
			ret = ARSetField( ctrl,
				schema,
				fieldId,
				fieldNamePtr,
				fieldMap,
				option,
				createMode,
#if AR_EXPORT_VERSION >= 9L
				fieldOption,
#endif
				defaultVal,
				permissions,
				limit,
				dInstanceList,
				helpText,
				ownerPtr,
				changeDiary,
#if AR_EXPORT_VERSION >= 9L
				setFieldOptions,
#endif
#if AR_CURRENT_API_VERSION >= 17
				objPropList,
#endif
				&status );

			RETVAL = ARError(ret,status) ? 0 : fieldId;
		}else{ 

ARS.xs  view on Meta::CPAN

		
	    if( createMode != NULL ){
			AP_FREE( createMode );
		}
	    if( option != NULL ){
			AP_FREE( option );
		}
	    if( helpText != NULL ){
			AP_FREE( helpText );
		}
	    if( changeDiary != NULL ){
			AP_FREE( changeDiary );
		}
		if( defaultVal != NULL ){
			FreeARValueStruct( defaultVal, TRUE );
		}
		if( permissions != NULL ){
			FreeARPermissionList( permissions, TRUE );
		}
		if( limit != NULL ){
			FreeARFieldLimitStruct( limit, TRUE );
		}

ARS.xs  view on Meta::CPAN

		ARIndexList indexList;
#if AR_EXPORT_VERSION >= 8L
		ARArchiveInfoStruct *archiveInfo = NULL;
#endif
#if AR_EXPORT_VERSION >= 9L
		ARAuditInfoStruct *auditInfo = NULL;
#endif
		ARNameType defaultVui;
		char *helpText = NULL;
		ARAccessNameType owner;
		char *changeDiary = NULL;
		ARPropList *objPropList = NULL;
		char *objectModificationLogLabel = NULL;
		ARStatusList status;
		HV *schemaDef = NULL;
		SV **pSvTemp;
		/* char strTemp[STR_TEMP_SIZE+1]; */

		RETVAL = 0; /* assume error */
		(void) ARError_reset();
		Zero(name, 1,ARNameType);

ARS.xs  view on Meta::CPAN

		}
#endif
		rv += strcpyHVal( schemaDef, "defaultVui", defaultVui, AR_MAX_NAME_SIZE ); 

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

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

		if( rv == 0 ){
			ret = ARCreateSchema( ctrl,

ARS.xs  view on Meta::CPAN

				&indexList,
#if AR_EXPORT_VERSION >= 8L
				archiveInfo,
#endif
#if AR_EXPORT_VERSION >= 9L
				auditInfo,
#endif
				defaultVui,
				helpText,
				owner,
				changeDiary,
				objPropList,
#if AR_CURRENT_API_VERSION >= 17
			    objectModificationLogLabel,
#endif
				&status );

			RETVAL = ARError(ret,status) ? 0 : 1;
		}else{ 
			ARError_add( AR_RETURN_ERROR, AP_ERR_PREREVFAIL);
			RETVAL = 0;
		}

		if( helpText != NULL ){
			AP_FREE( helpText );
		}
		if( changeDiary != NULL ){
			AP_FREE( changeDiary );
		}
		FreeARCompoundSchema( &compoundSchema, FALSE ); // TODO: we need our own free routine
		AP_FREE(groupList.permissionList);
		AP_FREE(admingrpList.internalIdList);
		AP_FREE(getListFields.fieldsList);
		AP_FREE(sortList.sortList);
		AP_FREE(indexList.indexList);
#if AR_EXPORT_VERSION >= 8L
		if( archiveInfo != NULL ){
			FreeARArchiveInfoStruct( archiveInfo, TRUE ); // TODO: we need our own free routine

ARS.xs  view on Meta::CPAN

		ARArchiveInfoStruct *archiveInfo = NULL;
#endif
#if AR_EXPORT_VERSION >= 9L
		ARAuditInfoStruct *auditInfo = NULL;
#endif
		ARNameType defaultVui;
		char *defaultVuiPtr = NULL;
		char *helpText = NULL;
		ARAccessNameType owner;
		char *ownerPtr = NULL; 
		char *changeDiary = NULL;
		ARPropList *objPropList = NULL;
		char *objectModificationLogLabel = NULL;
		ARStatusList status;
		HV *schemaDef = NULL;
		SV **pSvTemp;
		/* char strTemp[STR_TEMP_SIZE+1]; */

		RETVAL = 0; /* assume error */
		(void) ARError_reset();
		Zero(newName, 1,ARNameType);

ARS.xs  view on Meta::CPAN

			defaultVuiPtr = defaultVui;
		}

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

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


		if( rv == 0 ){

ARS.xs  view on Meta::CPAN

				indexList,
#if AR_EXPORT_VERSION >= 8L
				archiveInfo,
#endif
#if AR_EXPORT_VERSION >= 9L
				auditInfo,
#endif
				defaultVuiPtr,
				helpText,
				ownerPtr,
				changeDiary,
				objPropList,
#if AR_EXPORT_VERSION >= 8L
				0,              /* setOption, reserved for future use */
#endif
#if AR_CURRENT_API_VERSION >= 17
			    objectModificationLogLabel,
#endif
				&status );

			RETVAL = ARError(ret,status) ? 0 : 1;
		}else{ 
			ARError_add( AR_RETURN_ERROR, AP_ERR_PREREVFAIL);
			RETVAL = 0;
		}

	    if( helpText != NULL ){
			AP_FREE( helpText );
		}
	    if( changeDiary != NULL ){
			AP_FREE( changeDiary );
		}
		if( compoundSchema != NULL ){
			FreeARCompoundSchema( compoundSchema, TRUE );
		}
		if( groupList != NULL ){
			FreeARPermissionList( groupList, TRUE );
		}
		if( admingrpList != NULL ){
			FreeARInternalIdList( admingrpList, TRUE );
		}

ARS.xs  view on Meta::CPAN

	{
#if AR_EXPORT_VERSION >= 6L
		int ret = 0, rv = 0;
		ARInternalId vuiId = 0;
		ARNameType vuiName;
		ARLocaleType locale;
		unsigned int vuiType;
		ARPropList dPropList;
		char *helpText = NULL;
		ARAccessNameType owner;
		char *changeDiary = NULL;
		ARPropList objPropList;
		ARStatusList status;
		HV *vuiDef = NULL;
		SV **pSvTemp;

		RETVAL = 0; /* assume error */
		(void) ARError_reset();
		Zero(vuiName, 1,ARNameType);
		Zero(locale, 1,ARLocaleType);
		Zero(&dPropList, 1,ARPropList);

ARS.xs  view on Meta::CPAN

			/* objPropList.props = (ARPropStruct*) MALLOCNN( sizeof(ARPropStruct) ); */
			rv += rev_ARPropList( ctrl, vuiDef, "objPropList", &objPropList );
		}
#endif
		if( hv_exists(vuiDef,"helpText",8) ){
			rv += strmakHVal( vuiDef, "helpText", &helpText ); 
		}
		if( hv_exists(vuiDef,"owner",5) ){
			rv += strcpyHVal( vuiDef, "owner", owner, AR_MAX_ACCESS_NAME_SIZE ); 
		}
		if( hv_exists(vuiDef,"changeDiary",11) ){
			rv += strmakHVal( vuiDef, "changeDiary", &changeDiary );
		}

		if( rv == 0 ){
			ret = ARCreateVUI( ctrl,
				schemaName,
				&vuiId,
				vuiName,
				locale,
				vuiType,
				&dPropList,
				helpText,
				owner,
				changeDiary,
#if AR_CURRENT_API_VERSION >= 17
				&objPropList,
#endif
				&status );

			RETVAL = ARError(ret,status) ? 0 : 1;
		}else{ 
			ARError_add( AR_RETURN_ERROR, AP_ERR_PREREVFAIL);
			RETVAL = 0;
		}

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

ARS.xs  view on Meta::CPAN

		ARNameType vuiName;
		char *vuiNamePtr = NULL;
		ARLocaleType locale;
		char *localePtr = NULL;
		unsigned int vuiType;
		unsigned int *vuiTypePtr = NULL;
		ARPropList *dPropList = NULL;
		char *helpText = NULL;
		ARAccessNameType owner;
		char *ownerPtr = NULL;
		char *changeDiary = NULL;
		ARPropList *objPropList = NULL;
		ARStatusList status;
		HV *vuiDef = NULL;
		SV **pSvTemp;

		RETVAL = 0; /* assume error */
		(void) ARError_reset();
		Zero(vuiName, 1,ARNameType);
		Zero(locale, 1,ARLocaleType);
		Zero(owner, 1,ARAccessNameType);

ARS.xs  view on Meta::CPAN

		}
#endif
		if( hv_exists(vuiDef,"helpText",8) ){
			rv += strmakHVal( vuiDef, "helpText", &helpText ); 
		}
		
		if( hv_exists(vuiDef,"owner",5) ){
			rv += strcpyHVal( vuiDef, "owner", owner, AR_MAX_ACCESS_NAME_SIZE );
			ownerPtr = owner;
		}
		if( hv_exists(vuiDef,"changeDiary",11) ){
			rv += strmakHVal( vuiDef, "changeDiary", &changeDiary );
		}

		if( rv == 0 ){
			ret = ARSetVUI( ctrl,
				schemaName,
				vuiId,
				vuiNamePtr,
				localePtr,
				vuiTypePtr,
				dPropList,
				helpText,
				owner,
				changeDiary,
#if AR_CURRENT_API_VERSION >= 17
				objPropList,
#endif
				&status );

			RETVAL = ARError(ret,status) ? 0 : 1;
		}else{ 
			ARError_add( AR_RETURN_ERROR, AP_ERR_PREREVFAIL);
			RETVAL = 0;
		}

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

ARS.xs  view on Meta::CPAN

		ARPermissionList groupList;
		ARInternalIdList admingrpList;
		ARContainerOwnerObjList ownerObjList;
		char *label = NULL;
		char *description = NULL;
		char *typeStr = NULL;
		unsigned int type;
		ARReferenceList references;
		char *helpText = NULL;
		ARAccessNameType owner;
		char *changeDiary = NULL;
		ARPropList objPropList;
		char *objectModificationLogLabel = NULL;
		ARStatusList status;
		HV *containerDef = NULL;
		SV **pSvTemp;


		RETVAL = 0; /* assume error */
		(void) ARError_reset();
		Zero(name, 1,ARNameType);

ARS.xs  view on Meta::CPAN

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

		if( rv == 0 ){
			ret = ARCreateContainer( ctrl,
				name,
				&groupList,
				&admingrpList,
				&ownerObjList,
				label,
				description,
				type,
				&references,
				removeFlag,
				helpText,
				owner,
				changeDiary,
				&objPropList,
#if AR_CURRENT_API_VERSION >= 17
			    objectModificationLogLabel,
#endif
				&status );

			RETVAL = ARError(ret,status) ? 0 : 1;
		}else{ 
			ARError_add( AR_RETURN_ERROR, AP_ERR_PREREVFAIL);
			RETVAL = 0;

ARS.xs  view on Meta::CPAN


	    if( label != NULL ){
			AP_FREE( label );
		}
	    if( description != NULL ){
			AP_FREE( description );
		}
	    if( helpText != NULL ){
			AP_FREE( helpText );
		}
	    if( changeDiary != NULL ){
			AP_FREE( changeDiary );
		}
		FreeARPermissionList( &groupList, FALSE );
		FreeARInternalIdList( &admingrpList, FALSE );
		FreeARContainerOwnerObjList( &ownerObjList, FALSE );
		FreeARReferenceList( &references, FALSE );
		FreeARPropList( &objPropList, FALSE );
#else /* < 5.0 */
	  XPUSHs(sv_2mortal(newSViv(0))); /* ERR */
	  (void) ARError_add( AR_RETURN_ERROR, AP_ERR_DEPRECATED, 
			"ARSperl supports CreateContainer() only for ARSystem >= 5.0");

ARS.xs  view on Meta::CPAN

		ARInternalIdList *admingrpList = NULL;
		ARContainerOwnerObjList *ownerObjList = NULL;
		char *label = NULL;
		char *description = NULL;
		char *typeStr = NULL;
		unsigned int type;
		unsigned int *typePtr = NULL;
		ARReferenceList *references = NULL;
		char *helpText = NULL;
		ARAccessNameType owner;
		char *changeDiary = NULL;
		ARPropList *objPropList = NULL;
		char *objectModificationLogLabel = NULL;
		ARStatusList status;
		HV *containerDef = NULL;
		SV **pSvTemp;


		RETVAL = 0; /* assume error */
		(void) ARError_reset();
		Zero(newName, 1,ARNameType);

ARS.xs  view on Meta::CPAN

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

		if( rv == 0 ){
			ret = ARSetContainer( ctrl,
				name,
				newNamePtr,
				groupList,
				admingrpList,
				ownerObjList,
				label,
				description,
				typePtr,
				references,
				removeFlag,
				helpText,
				owner,
				changeDiary,
				objPropList,
#if AR_CURRENT_API_VERSION >= 17
			    objectModificationLogLabel,
#endif
				&status );

			RETVAL = ARError(ret,status) ? 0 : 1;
		}else{ 
			ARError_add( AR_RETURN_ERROR, AP_ERR_PREREVFAIL);
			RETVAL = 0;

ARS.xs  view on Meta::CPAN


	    if( label != NULL ){
			AP_FREE( label );
		}
	    if( description != NULL ){
			AP_FREE( description );
		}
	    if( helpText != NULL ){
			AP_FREE( helpText );
		}
	    if( changeDiary != NULL ){
			AP_FREE( changeDiary );
		}
		if( groupList != NULL ){
			FreeARPermissionList( groupList, TRUE );
		}
		if( admingrpList != NULL ){
			FreeARInternalIdList( admingrpList, TRUE );
		}
		if( ownerObjList != NULL ){
			FreeARContainerOwnerObjList( ownerObjList, TRUE );
		}

ARS.xs  view on Meta::CPAN

	  ARDisplayList          displayList;
#endif
	  unsigned int           enable = 0;
	  ARQualifierStruct     *query;
	  ARActiveLinkActionList actionList;
#if AR_EXPORT_VERSION >= 3
	  ARActiveLinkActionList elseList;
#endif
	  char                  *helpText = CPNULL;
	  ARAccessNameType       owner;
	  char                  *changeDiary = CPNULL;
	  char                  *objectModificationLogLabel = NULL;
	  ARStatusList           status;
#if AR_EXPORT_VERSION >= 5
	  ARNameList              schemaNameList;
	  ARWorkflowConnectStruct schemaList;
	  ARPropList              objPropList;
#endif
	  
	  RETVAL = 0; /* assume error */
	  (void) ARError_reset();

ARS.xs  view on Meta::CPAN

		if(hv_exists(alDef,  "owner", strlen("owner") ))
			rv += strcpyHVal( alDef, "owner", owner, AR_MAX_ACCESS_NAME_SIZE);
		else
			strncpy(owner, ctrl->user, sizeof(ARAccessNameType));

		/* these two are optional, so if the calls return warnings
		 * it probably indicates that the hash keys don't exist and
		 * we'll ignore it unless an actual failure code is returned.
		 */

		if(hv_exists(alDef,  "changeDiary", strlen("changeDiary") ))
			rv += strmakHVal( alDef, "changeDiary", &changeDiary);
		if(hv_exists(alDef,  "helpText", strlen("helpText") ))
			rv += strmakHVal( alDef, "helpText", &helpText);

		/* now handle the action & else (3.x) lists */

		rv += rev_ARActiveLinkActionList(ctrl, alDef, "actionList", 
						&actionList);
#if AR_EXPORT_VERSION >= 3
		rv += rev_ARActiveLinkActionList(ctrl, alDef, "elseList", 
						&elseList);

ARS.xs  view on Meta::CPAN

		 * built. we can call the api routine to create the
		 * active link.
		 */
		if(rv == 0) {
#if AR_EXPORT_VERSION >= 5
		   ret = ARCreateActiveLink(ctrl, name, order, &schemaList, 
					    &groupList, executeMask,
					    &controlField, &focusField, 
					    enable, query,
					    &actionList, &elseList, 
					    helpText, owner, changeDiary, 
					    &objPropList,
#if AR_CURRENT_API_VERSION >= 14
						0,            /* errorActlinkOptions, reserved for future use */
						NULL,         /* errorActlinkName,    reserved for future use */
#endif
#if AR_CURRENT_API_VERSION >= 17
					    objectModificationLogLabel,
#endif
					    &status);
#elif AR_EXPORT_VERSION >= 3
		   ret = ARCreateActiveLink(ctrl, name, order, schema, 
					    &groupList, executeMask,
					    &controlField, &focusField, 
					    enable, query,
					    &actionList, &elseList, 
					    helpText, owner, changeDiary,
					    &status);
#else /* 2.x */
#endif
		   if(!ARError( ret, status))
			   RETVAL = 1;
		} else 
		   ARError_add( AR_RETURN_ERROR, AP_ERR_PREREVFAIL);
	  }
	  if (helpText) {
	    	AP_FREE(helpText);
	  }
	  if (changeDiary) {
	    	AP_FREE(changeDiary);
	  }
	  FreeARInternalIdList(&groupList, FALSE);
	  FreeARActiveLinkActionList(&actionList, FALSE);
#if AR_EXPORT_VERSION >= 3
	  FreeARActiveLinkActionList(&elseList, FALSE);
#else /* 2.x */
	  FreeARDisplayList(&displayList, FALSE);
#endif
#if AR_EXPORT_VERSION >= 5
	  FreeARPropList(&objPropList, FALSE);

ARS.xs  view on Meta::CPAN

	  unsigned int            *order = NULL;
	  ARInternalId            *controlField = NULL;
	  ARInternalId            *focusField = NULL;
	  unsigned int            *enable = NULL;
	  ARQualifierStruct       *query = NULL;
	  ARActiveLinkActionList  *actionList = NULL;
	  ARActiveLinkActionList  *elseList   = NULL;
	  char                    *helpText = CPNULL;
	  ARAccessNameType         owner;
	  char                    *ownerPtr = NULL;
	  char                    *changeDiary = CPNULL;
	  char                    *objectModificationLogLabel = NULL;
	  ARStatusList             status;
	  ARWorkflowConnectStruct  *schemaList = NULL;
	  ARPropList               *objPropList = NULL;
	  
	  RETVAL = 0; /* assume error */
	  (void) ARError_reset();
	  Zero(&status, 1,ARStatusList);
	  Zero(newName, 1, ARNameType);
	  Zero(owner, 1, ARAccessNameType);

ARS.xs  view on Meta::CPAN

		if(hv_exists(objDef,  "owner", strlen("owner") )){
			rv += strcpyHVal( objDef, "owner", owner, AR_MAX_ACCESS_NAME_SIZE);
			ownerPtr = owner;
		}

		/* these two are optional, so if the calls return warnings
		 * it probably indicates that the hash keys don't exist and
		 * we'll ignore it unless an actual failure code is returned.
		 */

		if(hv_exists(objDef,  "changeDiary", strlen("changeDiary") ))
			rv += strmakHVal( objDef, "changeDiary", &changeDiary);
		if(hv_exists(objDef,  "helpText", strlen("helpText") ))
			rv += strmakHVal( objDef, "helpText", &helpText);

		/* now handle the action & else (3.x) lists */

		if(hv_exists(objDef,  "actionList", strlen("actionList") )){
			actionList = (ARActiveLinkActionList*) MALLOCNN(sizeof(ARActiveLinkActionList));
			rv += rev_ARActiveLinkActionList(ctrl, objDef, "actionList", actionList);
		}

ARS.xs  view on Meta::CPAN


		/* at this point all datastructures (hopefully) are 
		 * built. we can call the api routine to modify the workflow object
		 */
		if(rv == 0) {
		   ret = ARSetActiveLink(ctrl, name, newNamePtr, order, schemaList, 
					    groupList, executeMask,
					    controlField, focusField, 
					    enable, query,
					    actionList, elseList, 
					    helpText, ownerPtr, changeDiary, 
					    objPropList,
#if AR_CURRENT_API_VERSION >= 14
						NULL,         /* errorActlinkOptions, reserved for future use */
						NULL,         /* errorActlinkName,    reserved for future use */
#endif
#if AR_CURRENT_API_VERSION >= 17
					    objectModificationLogLabel,
#endif
					    &status);
		   if(!ARError( ret, status))
			   RETVAL = 1;
		} else 
		   ARError_add( AR_RETURN_ERROR, AP_ERR_PREREVFAIL);
	  }
	  if (helpText) {
	    	AP_FREE(helpText);
	  }
	  if (changeDiary) {
	    	AP_FREE(changeDiary);
	  }

	  if( order != NULL )        {  AP_FREE(order);  }
	  if( executeMask != NULL )  {  AP_FREE(executeMask);  }
	  if( enable != NULL )       {  AP_FREE(enable);  }
	  if( focusField != NULL )   { AP_FREE(focusField);  }
	  if( controlField != NULL ) { AP_FREE(controlField);  }

	  /* if( query != NULL )       { FreeARARQualifierStruct( query, TRUE );  } */
	  if( schemaList != NULL )   { FreeARWorkflowConnectStruct( schemaList, TRUE );  }

ARS.xs  view on Meta::CPAN

#if AR_EXPORT_VERSION >= 5
	  int                    ret = 0, rv = 0;
	  ARNameType             schema, name;
	  unsigned int           opSet, order;
	  unsigned int           enable = 0;
	  ARQualifierStruct     *query;
	  ARFilterActionList     actionList;
	  ARFilterActionList     elseList;
	  char                  *helpText = CPNULL;
	  ARAccessNameType       owner;
	  char                  *changeDiary = CPNULL;
	  char                  *objectModificationLogLabel = NULL;
	  ARStatusList           status;
	  ARNameList              schemaNameList;
	  ARWorkflowConnectStruct schemaList;
	  ARPropList              objPropList;
#if AR_CURRENT_API_VERSION >= 13
	  unsigned int           errorFilterOptions = 0;
	  ARNameType             errorFilterName;
#endif
	  

ARS.xs  view on Meta::CPAN

		if(hv_exists(objDef,  "owner", strlen("owner") ))
			rv += strcpyHVal( objDef, "owner", owner, AR_MAX_ACCESS_NAME_SIZE);
		else
			strncpy(owner, ctrl->user, sizeof(ARAccessNameType));
		
		/* these two are optional, so if the calls return warnings
		 * it probably indicates that the hash keys don't exist and
		 * we'll ignore it unless an actual failure code is returned.
		 */

		if(hv_exists(objDef,  "changeDiary", strlen("changeDiary") ))
			rv += strmakHVal( objDef, "changeDiary", &changeDiary);
		if(hv_exists(objDef,  "helpText", strlen("helpText") ))
			rv += strmakHVal( objDef, "helpText", &helpText);

		/* now handle the action & else (3.x) lists */

		rv += rev_ARFilterActionList(ctrl, objDef, "actionList", 
						&actionList);

		rv += rev_ARFilterActionList(ctrl, objDef, "elseList", 
						&elseList);

ARS.xs  view on Meta::CPAN


		/* at this point all datastructures (hopefully) are 
		 * built. we can call the api routine to create the
		 * filter.
		 */
		if(rv == 0) {
		   ret = ARCreateFilter(ctrl, name, order, &schemaList, 
					    opSet,
					    enable, query,
					    &actionList, &elseList, 
					    helpText, owner, changeDiary, 
					    &objPropList,
#if AR_CURRENT_API_VERSION >= 13
					    errorFilterOptions,
					    errorFilterName,
#endif
#if AR_CURRENT_API_VERSION >= 17
					    objectModificationLogLabel,
#endif
					    &status);
		   if(!ARError( ret, status))
			   RETVAL = 1;
		} else 
		   ARError_add( AR_RETURN_ERROR, AP_ERR_PREREVFAIL);
	  }
	  if (helpText) {
	    	AP_FREE(helpText);
	  }
	  if (changeDiary) {
	    	AP_FREE(changeDiary);
	  }
	  FreeARFilterActionList(&actionList, FALSE);
	  FreeARFilterActionList(&elseList, FALSE);
	  FreeARPropList(&objPropList, FALSE);
	  FreeARNameList(&schemaNameList, FALSE);
#else /* < 5.0 */
	  XPUSHs(sv_2mortal(newSViv(0))); /* ERR */
	  (void) ARError_add( AR_RETURN_ERROR, AP_ERR_DEPRECATED, 
			"ARSperl supports CreateContainer() only for ARSystem >= 5.0");
      RETVAL = AR_RETURN_ERROR;

ARS.xs  view on Meta::CPAN

	  char                    *newNamePtr = NULL;
	  unsigned int            *opSet = NULL;
	  unsigned int            *order = NULL;
	  unsigned int            *enable = NULL;
	  ARQualifierStruct       *query = NULL;
	  ARFilterActionList      *actionList = NULL;
	  ARFilterActionList      *elseList   = NULL;
	  char                    *helpText = CPNULL;
	  ARAccessNameType         owner;
	  char                    *ownerPtr = NULL;
	  char                    *changeDiary = CPNULL;
	  char                    *objectModificationLogLabel = NULL;
	  ARStatusList             status;
	  ARWorkflowConnectStruct  *schemaList = NULL;
	  ARPropList               *objPropList = NULL;
#if AR_CURRENT_API_VERSION >= 13
	  unsigned int           *errorFilterOptions = NULL;
	  ARNameType              errorFilterName;
	  char                   *errorFilterNamePtr = NULL;
#endif
	  

ARS.xs  view on Meta::CPAN

		if(hv_exists(objDef,  "owner", strlen("owner") )){
			rv += strcpyHVal( objDef, "owner", owner, AR_MAX_ACCESS_NAME_SIZE);
			ownerPtr = owner;
		}

		/* these two are optional, so if the calls return warnings
		 * it probably indicates that the hash keys don't exist and
		 * we'll ignore it unless an actual failure code is returned.
		 */

		if(hv_exists(objDef,  "changeDiary", strlen("changeDiary") ))
			rv += strmakHVal( objDef, "changeDiary", &changeDiary);
		if(hv_exists(objDef,  "helpText", strlen("helpText") ))
			rv += strmakHVal( objDef, "helpText", &helpText);

		/* now handle the action & else (3.x) lists */

		if(hv_exists(objDef,  "actionList", strlen("actionList") )){
			actionList = (ARFilterActionList*) MALLOCNN(sizeof(ARFilterActionList));
			rv += rev_ARFilterActionList(ctrl, objDef, "actionList", actionList);
		}

ARS.xs  view on Meta::CPAN

#endif

		/* at this point all datastructures (hopefully) are 
		 * built. we can call the api routine to modify the workflow object
		 */
		if(rv == 0) {
		   ret = ARSetFilter(ctrl, name, newNamePtr, order, schemaList, 
					    opSet,
					    enable, query,
					    actionList, elseList, 
					    helpText, ownerPtr, changeDiary, 
					    objPropList, 
#if AR_CURRENT_API_VERSION >= 13
					    errorFilterOptions,
					    errorFilterNamePtr,
#endif
#if AR_CURRENT_API_VERSION >= 17
					    objectModificationLogLabel,
#endif
					    &status);
		   if(!ARError( ret, status))
			   RETVAL = 1;
		} else 
		   ARError_add( AR_RETURN_ERROR, AP_ERR_PREREVFAIL);
	  }
	  if (helpText) {
	    	AP_FREE(helpText);
	  }
	  if (changeDiary) {
	    	AP_FREE(changeDiary);
	  }

	  if( order != NULL )        {  AP_FREE(order);  }
	  if( enable != NULL )       {  AP_FREE(enable);  }

	  /* if( query != NULL )       { FreeARARQualifierStruct( query, TRUE );  } */
	  if( schemaList != NULL )   { FreeARWorkflowConnectStruct( schemaList, TRUE );  }
	  if( actionList != NULL )   { FreeARFilterActionList( actionList, TRUE );  }
	  if( elseList != NULL )     { FreeARFilterActionList( elseList, TRUE );  }
	  if( objPropList != NULL )  { FreeARPropList( objPropList, TRUE );  }

ARS.xs  view on Meta::CPAN

#if AR_EXPORT_VERSION >= 5
	  int                    ret = 0, rv = 0;
	  ARNameType             name;
	  unsigned int           enable = 0;
	  AREscalationTmStruct   escalationTm;
	  ARQualifierStruct     *query;
	  ARFilterActionList     actionList;
	  ARFilterActionList     elseList;
	  char                  *helpText = CPNULL;
	  ARAccessNameType       owner;
	  char                  *changeDiary = CPNULL;
	  char                  *objectModificationLogLabel = NULL;
	  ARStatusList           status;
	  ARNameList              schemaNameList;
	  ARWorkflowConnectStruct schemaList;
	  ARPropList              objPropList;
	  
	  RETVAL = 0; /* assume error */
	  (void) ARError_reset();
	  Zero(&status, 1,ARStatusList);
	  Zero(name, 1, ARNameType);

ARS.xs  view on Meta::CPAN

		if(hv_exists(objDef,  "owner", strlen("owner") ))
			rv += strcpyHVal( objDef, "owner", owner, AR_MAX_ACCESS_NAME_SIZE);
		else
			strncpy(owner, ctrl->user, sizeof(ARAccessNameType));

		/* these two are optional, so if the calls return warnings
		 * it probably indicates that the hash keys don't exist and
		 * we'll ignore it unless an actual failure code is returned.
		 */

		if(hv_exists(objDef,  "changeDiary", strlen("changeDiary") ))
			rv += strmakHVal( objDef, "changeDiary", &changeDiary);
		if(hv_exists(objDef,  "helpText", strlen("helpText") ))
			rv += strmakHVal( objDef, "helpText", &helpText);

		/* now handle the action & else (3.x) lists */

		rv += rev_ARFilterActionList(ctrl, objDef, "actionList", 
						&actionList);

		rv += rev_ARFilterActionList(ctrl, objDef, "elseList", 
						&elseList);

ARS.xs  view on Meta::CPAN

		/* at this point all datastructures (hopefully) are 
		 * built. we can call the api routine to create the
		 * escalation.
		 */
		if(rv == 0) {
		   ret = ARCreateEscalation(ctrl, name, 
					    &escalationTm,
						&schemaList, 
					    enable, query,
					    &actionList, &elseList, 
					    helpText, owner, changeDiary, 
					    &objPropList,
#if AR_CURRENT_API_VERSION >= 17
					    objectModificationLogLabel,
#endif
					    &status);
		   if(!ARError( ret, status))
			   RETVAL = 1;
		} else 
		   ARError_add( AR_RETURN_ERROR, AP_ERR_PREREVFAIL);
	  }
	  if (helpText) {
	    	AP_FREE(helpText);
	  }
	  if (changeDiary) {
	    	AP_FREE(changeDiary);
	  }
	  FreeARFilterActionList(&actionList, FALSE);
	  FreeARFilterActionList(&elseList, FALSE);
	  FreeARPropList(&objPropList, FALSE);
	  FreeARNameList(&schemaNameList, FALSE);
#else /* < 5.0 */
	  XPUSHs(sv_2mortal(newSViv(0))); /* ERR */
	  (void) ARError_add( AR_RETURN_ERROR, AP_ERR_DEPRECATED, 
			"ARSperl supports CreateContainer() only for ARSystem >= 5.0");
      RETVAL = AR_RETURN_ERROR;

ARS.xs  view on Meta::CPAN

	  ARNameType               newName;
	  char                    *newNamePtr = NULL;
	  AREscalationTmStruct    *escalationTm = NULL;
	  unsigned int            *enable = NULL;
	  ARQualifierStruct       *query = NULL;
	  ARFilterActionList      *actionList = NULL;
	  ARFilterActionList      *elseList   = NULL;
	  char                    *helpText = CPNULL;
	  ARAccessNameType         owner;
	  char                    *ownerPtr = NULL;
	  char                    *changeDiary = CPNULL;
	  char                    *objectModificationLogLabel = NULL;
	  ARStatusList             status;
	  ARWorkflowConnectStruct  *schemaList = NULL;
	  ARPropList               *objPropList = NULL;
	  
	  RETVAL = 0; /* assume error */
	  (void) ARError_reset();
	  Zero(&status, 1,ARStatusList);
	  Zero(newName, 1, ARNameType);
	  Zero(owner, 1, ARAccessNameType);

ARS.xs  view on Meta::CPAN

		if(hv_exists(objDef,  "owner", strlen("owner") )){
			rv += strcpyHVal( objDef, "owner", owner, AR_MAX_ACCESS_NAME_SIZE);
			ownerPtr = owner;
		}

		/* these two are optional, so if the calls return warnings
		 * it probably indicates that the hash keys don't exist and
		 * we'll ignore it unless an actual failure code is returned.
		 */

		if(hv_exists(objDef,  "changeDiary", strlen("changeDiary") ))
			rv += strmakHVal( objDef, "changeDiary", &changeDiary);
		if(hv_exists(objDef,  "helpText", strlen("helpText") ))
			rv += strmakHVal( objDef, "helpText", &helpText);

		/* now handle the action & else (3.x) lists */

		if(hv_exists(objDef,  "actionList", strlen("actionList") )){
			actionList = (ARFilterActionList*) MALLOCNN(sizeof(ARFilterActionList));
			rv += rev_ARFilterActionList(ctrl, objDef, "actionList", actionList);
		}

ARS.xs  view on Meta::CPAN


		/* at this point all datastructures (hopefully) are 
		 * built. we can call the api routine to modify the workflow object
		 */
		if(rv == 0) {
		   ret = ARSetEscalation(ctrl, name, newNamePtr, 
					    escalationTm,
		   				schemaList, 
					    enable, query,
					    actionList, elseList, 
					    helpText, ownerPtr, changeDiary, 
					    objPropList,
#if AR_CURRENT_API_VERSION >= 17
					    objectModificationLogLabel,
#endif
					    &status);
		   if(!ARError( ret, status))
			   RETVAL = 1;
		} else 
		   ARError_add( AR_RETURN_ERROR, AP_ERR_PREREVFAIL);
	  }
	  if (helpText) {
	    	AP_FREE(helpText);
	  }
	  if (changeDiary) {
	    	AP_FREE(changeDiary);
	  }

	  if( enable != NULL )       {  AP_FREE(enable);  }

	  /* if( query != NULL )       { FreeARARQualifierStruct( query, TRUE );  } */
	  if( schemaList != NULL )   { FreeARWorkflowConnectStruct( schemaList, TRUE );  }
	  if( actionList != NULL )   { FreeARFilterActionList( actionList, TRUE );  }
	  if( elseList != NULL )     { FreeARFilterActionList( elseList, TRUE );  }
	  if( objPropList != NULL )  { FreeARPropList( objPropList, TRUE );  }
#else /* < 5.0 */

ARS.xs  view on Meta::CPAN

	{
	  ARStatusList           status;
#if AR_CURRENT_API_VERSION >= 14
	  int                    ret = 0, rv = 0;
	  ARNameType             name;
	  ARImageDataStruct      imageBuf;
	  char                  *imageType   = CPNULL;
	  char                  *description = CPNULL;
	  char                  *helpText    = CPNULL;
	  ARAccessNameType       owner;
	  char                  *changeDiary = CPNULL;
	  ARPropList             objPropList;
	  char                  *objectModificationLogLabel = NULL;
  
	  RETVAL = 0; /* assume error */
	  (void) ARError_reset();
	  Zero(&status, 1,ARStatusList);
	  Zero(name, 1, ARNameType);
	  Zero(&imageBuf, 1,ARImageDataStruct);
	  Zero(owner, 1, ARAccessNameType);
	  Zero(&objPropList, 1, ARPropList);

ARS.xs  view on Meta::CPAN

		if(hv_exists(objDef,  "owner", strlen("owner") ))
			rv += strcpyHVal( objDef, "owner", owner, AR_MAX_ACCESS_NAME_SIZE);
		else
			strncpy(owner, ctrl->user, sizeof(ARAccessNameType));
		
		/* these two are optional, so if the calls return warnings
		 * it probably indicates that the hash keys don't exist and
		 * we'll ignore it unless an actual failure code is returned.
		 */

		if(hv_exists(objDef,  "changeDiary", strlen("changeDiary") ))
			rv += strmakHVal( objDef, "changeDiary", &changeDiary);
		if(hv_exists(objDef,  "helpText", strlen("helpText") ))
			rv += strmakHVal( objDef, "helpText", &helpText);

		if(hv_exists(objDef,  "objPropList", strlen("objPropList") ))
			rv += rev_ARPropList(ctrl, objDef, "objPropList",
					     &objPropList);

		/* at this point all datastructures (hopefully) are 
		 * built. we can call the api routine to create the
		 * image.
		 */
		if( rv == 0 ){
		   ret = ARCreateImage( ctrl, name,
					    &imageBuf, 
					    imageType,
					    description,
					    helpText, owner, changeDiary, 
					    &objPropList,
#if AR_CURRENT_API_VERSION >= 17
					    objectModificationLogLabel,
#endif
					    &status);
		   if(!ARError( ret, status))
			   RETVAL = 1;
		}else{
		   ARError_add( AR_RETURN_ERROR, AP_ERR_PREREVFAIL);
		}
	  }
	  if (helpText) {
	    	AP_FREE(helpText);
	  }
	  if (changeDiary) {
	    	AP_FREE(changeDiary);
	  }
	  if (description) {
	    	AP_FREE(description);
	  }
	  if (imageType) {
	    	AP_FREE(description);
	  }
	  FreeARImageDataStruct(&imageBuf, FALSE);
	  FreeARPropList(&objPropList, FALSE);
#else	/* prior to ARS 7.5 */

ARS.xs  view on Meta::CPAN

#if AR_CURRENT_API_VERSION >= 14
	  int                    ret = 0, rv = 0;
	  ARNameType             newName;
	  char                  *newNamePtr  = NULL;
	  ARImageDataStruct     *imageBuf    = NULL;
	  char                  *imageType   = CPNULL;
	  char                  *description = CPNULL;
	  char                  *helpText    = CPNULL;
	  ARAccessNameType       owner;
	  char                  *ownerPtr    = NULL;
	  char                  *changeDiary = CPNULL;
	  ARPropList            *objPropList = NULL;
	  char                  *objectModificationLogLabel = NULL;
	  
	  RETVAL = 0; /* assume error */
	  (void) ARError_reset();
	  Zero(&status, 1,ARStatusList);
	  Zero(newName, 1, ARNameType);
	  Zero(owner, 1, ARAccessNameType);

	  if(SvTYPE((SV *)SvRV(objDefRef)) != SVt_PVHV) {

ARS.xs  view on Meta::CPAN

		rv  = 0;
		if( hv_exists(objDef,"name",4) ){
			rv += strcpyHVal( objDef, "name", newName, AR_MAX_NAME_SIZE ); 
			newNamePtr = newName;
		}
		if(hv_exists(objDef,  "owner", strlen("owner") )){
			rv += strcpyHVal( objDef, "owner", owner, AR_MAX_ACCESS_NAME_SIZE);
			ownerPtr = owner;
		}

		if(hv_exists(objDef,  "changeDiary", strlen("changeDiary") ))
			rv += strmakHVal( objDef, "changeDiary", &changeDiary);
		if(hv_exists(objDef,  "helpText", strlen("helpText") ))
			rv += strmakHVal( objDef, "helpText", &helpText);

		if(hv_exists(objDef,  "imageType", strlen("imageType") ))
			rv += strmakHVal( objDef, "imageType", &imageType);

		if(hv_exists(objDef,  "imageData", strlen("imageData") )){
			imageBuf = (ARImageDataStruct*) MALLOCNN(sizeof(ARImageDataStruct));
			rv += rev_ARImageDataStruct(ctrl, objDef, "imageData", imageBuf);
		}

ARS.xs  view on Meta::CPAN

		/* at this point all datastructures (hopefully) are 
		 * built. we can call the api routine to create the
		 * image.
		 */
		if( rv == 0 ){
		   ret = ARSetImage( ctrl, name,
		   			    newNamePtr,
					    imageBuf, 
					    imageType,
					    description,
					    helpText, owner, changeDiary, 
					    objPropList,
#if AR_CURRENT_API_VERSION >= 17
					    objectModificationLogLabel,
#endif
					    &status);
		   if(!ARError( ret, status))
			   RETVAL = 1;
		}else{
		  ARError_add( AR_RETURN_ERROR, AP_ERR_PREREVFAIL);
		}
	  }
	  if (helpText) {
	    	AP_FREE(helpText);
	  }
	  if (changeDiary) {
	    	AP_FREE(changeDiary);
	  }
	  if (description) {
	    	AP_FREE(description);
	  }
	  if (imageType) {
	    	AP_FREE(description);
	  }
	  if( imageBuf != NULL )     { FreeARImageDataStruct(imageBuf, TRUE); }
	  if( objPropList != NULL )  { FreeARPropList(objPropList, TRUE);     }
#else	/* prior to ARS 7.5 */

ARS/OOsup.pm  view on Meta::CPAN

  print "\tcacheId       = $cacheId\n";
  print "\toperationTime = ".localtime($operationTime)."\n";
  print "\tuser          = $user\n";
  print "\tpassword      = $password\n";
  print "\tserver        = $server\n";
  print "\tlang          = $lang\n";
}

sub availableSchemas {
  my $this = shift;
  my ($changedSince, $schemaType, $name) =  
    rearrange([CHANGEDSINCE,SCHEMATYPE,NAME],@_);

  $changedSince = 0 unless defined($changedSince);
  $schemaType = ARS::AR_LIST_SCHEMA_ALL unless defined($schemaType);
  $name = "" unless defined($name);

  return ars_GetListSchema($this->{'ctrl'},
			   $changedSince,
			   $schemaType, undef,
			   $name);
}

sub openForm {
  my $this = shift;
  my($form, $vui) = rearrange([FORM,VUI], @_);

  $this->pushMessage(&ARS::AR_RETURN_ERROR,
		     81000,

Artistic  view on Meta::CPAN


1. You may make and give away verbatim copies of the source form of the
Standard Version of this Package without restriction, provided that you
duplicate all of the original copyright notices and associated disclaimers.

2. You may apply bug fixes, portability fixes and other modifications
derived from the Public Domain or from the Copyright Holder.  A Package
modified in such a way shall still be considered the Standard Version.

3. You may otherwise modify your copy of this Package in any way, provided
that you insert a prominent notice in each changed file stating how and
when you changed that file, and provided that you do at least ONE of the
following:

    a) place your modifications in the Public Domain or otherwise make them
    Freely Available, such as by posting said modifications to Usenet or
    an equivalent medium, or placing the modifications on a major archive
    site such as uunet.uu.net, or by allowing the Copyright Holder to include
    your modifications in the Standard Version of the Package.

    b) use the modified Package only within your corporation or organization.

Artistic  view on Meta::CPAN

neither be construed as a distribution of this Package nor shall it
fall under the restrictions of Paragraphs 3 and 4, provided that you do
not represent such an executable image as a Standard Version of this
Package.

7. C subroutines (or comparably compiled subroutines in other
languages) supplied by you and linked into this Package in order to
emulate subroutines and variables of the language defined by this
Package shall not be considered part of this Package, but are the
equivalent of input as in Paragraph 6, provided these subroutines do
not change the language in any way that would cause it to fail the
regression tests for the language.

8. Aggregation of this Package with a commercial distribution is always
permitted provided that the use of this Package is embedded; that is,
when no overt attempt is made to make this Package's interfaces visible
to the end user of the commercial distribution.  Such use shall not be
construed as a distribution of this Package.

9. The name of the Copyright Holder may not be used to endorse or promote
products derived from this software without specific prior written permission.

CHANGES  view on Meta::CPAN

Revision history for ARSperl.

BM  = Bill Middleton <wjm at metronet.com>
GDF = G. David Frye  <gdf at uiuc.edu>
JCM = Jeff Murphy    <jcmurphy at buffalo.edu>
JWM = Joel Murphy    <jmurphy at buffalo.edu>
TS  = Thilo Stapff   <tstapff at sourceforge.net>
CL  = Chris Leach    <Chris.Leach at kaz-group.com>
JL  = John Luthgers  <jls17 at gmx.net>

Note: items preceeded by a '!' denoted changes that are incompatible with
previous versions of arsperl and may require altering of some arsperl
scripts.


Released: 05/27/2015 Version: 2.00


 (JL)   Linux 64-bit is working using GCC

 (JL)   Compiling using ARAPI 8.0 / 8.1 possible

CHANGES  view on Meta::CPAN

        ars_GetServerCharSet, ars_GetClientCharSet

 (TS)   fixed actionList/elseList bug in ars_SetActiveLink

 (TS)   added AR_DATA_TYPE_VIEW handling to perl_ARValueStruct_Assign,rev_ARActiveLinkActionList

 (TS)   modified Makefile.PL for easier automated testing (handling of ARSPERLTEST_PARAM)

 (TS)   added ars_GetListRole, ars_Signal, ars_GetTextForErrorMessage

 (TS) ! changed return struct of ars_GetListGroup

 (TS)   fixed IVLD macro in support-h.template


Released: 05/06/2008 Version: 1.91


 (TS)   fixed ars_padEntryid to work correctly if entry ID prefix is defined

 (TS)   replaced malloc-on-windows patch by UNDEF_PERL_MALLOC compilation option in Makefile.PL

CHANGES  view on Meta::CPAN

 (TS)   fixed pointer initialization error in ars_SetVUI

 (TS)   modified ars_Create/Get/SetFilter for API 7.1

 (TS)   fixed ars_GetAlertCount

 (MB)   removed legacy ars_NT Notifier and ars_AdminExtension calls

 (MB) ! added ars_VerifyUser implementation by Thilo Stapff

 (MB) ! changed ars_APIVersion to use AR_CURRENT_API_VERSION rather than AR_EXPORT_VERSION

 (MB)   fixed ars_GetActiveLink, ars_GetFilter, ars_GetEscalation, ars_GetField so they 
        return undef on failure.

(JCM)   buffer overflow in perl_BuildEntryList

(JCM)   malloc-on-windows patch by John Unsworth

 (TS)   fixed memory leak in ars_Get... functions (added "sv_2mortal( (SV*) RETVAL )")

 (TS)   bugfix in dup_Value (support.c) for API version <= 5.0.1

 (TS)   changed enum limits processing in perl_ARFieldLimitStruct for API version <= 5.0.1

 (TS)   updated MANIFEST file

 (TS)   replaced strdup() by arsperl_strdup() for win32 to fix problems with VisualStudio8

 (TS)   changed type of "owner" attribute: ARNameType -> ARAccessNameType

 (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"

 (TS)   added ars_CreateContainer, ars_SetContainer

 (TS)   added ars_CreateFilter, ars_SetFilter, ars_CreateEscalation, ars_SetEscalation,
        ars_SetActiveLink

 (TS)   added declaration of boolcpyHVal(...) to supportrev.h

 (TS)   added declaration of revTypeName(...) to supportrev.h

 (TS)   added "rev_ARReferenceStruct" to supportrev.c

 (TS)   changed perl_ARReferenceStruct (added "value_dataType" key, necessary for
        ars_CreateContainer)

 (TS)   changed ars_CreateActiveLink to read "schemaList" from alDef struct

 (TS)   bugfix in rev_ARMessageStruct
        ( hv_exists(h,"messageType"... ->  hv_exists(a,"messageType"... )

 (TS)   moved declaration of rev_ARMessageStruct from supportrev.c to supportrev.h

 (TS)   bugfix in rev_ARAssignFieldStruct_helper: hv_exists needs key length

 (TS)   bugfix in rev_ARAssignFieldStruct_helper: hv_exists needs key length
        (dup_qualifier2(...) != NULL ... return ...)

 (TS)   added case: AR_COND_OP_FROM_FIELD to dup_qualifier2

 (TS)   added functions perl_ARSetFieldsActionStruct, perl_ARPushFieldsActionStruct;
        changed perl_ARFilterActionStruct accordingly.

 (TS)   bugfix in rev_ARFunctionAssignStruct (parameterList[i] -> parameterList[i-1])

 (TS)   bugfix in rev_ARArithOpAssignStruct_helper (AR_ARITH_OP_NEGATE uses operandRight,
        not operandLeft), fixed condition for AR_ARITH_OP_NEGATE.

 (TS)   bugfix in rev_ARAssignSQLStruct
        (strcpyHVal(hr,"sqlCommand"...)  -> strmakHVal(hr, "sqlCommand"...))

 (TS)   bugfix in rev_ARActiveLinkMacroParmList (... == SVt_PVAV -> ... == SVt_PVHV) 

 (TS)   bugfix in rev_ARActiveLinkMacroParmList (copymem -> strdup) 

 (TS)   changed rev_ARValueStructDiary to support non-hashref diary values
        (necessary in ARAssignStruct context)

 (TS)   added ars_CreateSchema, ars_SetSchema, ars_CreateField, ars_SetField,
        ars_CreateVUI, ars_SetVUI

 (TS)   added scripts (StructDef.pl, rev_AR_template.pl) for automatic generation of
        conversion code (perl data structures -> AR API structs)

 (TS)   added module (ARS/CodeTemplate.pm) for code generation

 (TS)   change in perl_ARFieldValueOrArithStruct; if tag == AR_VALUE, put dataType into hash

 (TS)   added check for h != NULL to strcpyHVal 

 (TS)   added "case AR_COND_OP_FROM_FIELD" to perl_qualifier()

 (TS)   changed handling of qualifier structs in perl_ARFieldLimitStruct, perl_ARJoinSchema,
        perl_ARArchiveInfoStruct; those functions now return the converted perl structure
        instead of the pointer to a C structure. 

 (TS)   fixed Makefile.PL to work with $ARSAPI containing spaces on Windows

 (TS)   added ars_DeleteContainer (changes to ARS.xs, ARS.pm)

 (TS)   fixed Makefile.PL to use $ra_arlibs for Version <= 5.0 on Windows

 (TS)   fixed rev_ARValueStructStr2Type: use strcasecmp instead of strncasecmp
        (failure to differentiate between string and substring)

 (TS)   added "case AR_DATA_TYPE_CURRENCY" to perl_ARValueStruct

 (TS)   moved existing code for AR_DATA_TYPE_CURRENCY from sv_to_ARValueStruct
        to new function sv_to_ARCurrencyStruct, completed ARCurrencyStruct handling

CHANGES  view on Meta::CPAN


 (TS)   added conversion functions rev_ARDisplayInstanceList,
        rev_ARDisplayInstanceStruct and rev_ARPermissionList

 (TS)   fixed DESTROY(ctrl) (use safefree if allocated with safemalloc)

 (TS)   minor fix in in rev_ARValueStructKW2KN (*keyword == '\0')

 (TS)   minor fix in rev_ARCoordList_helper ( if (hv_exists("x"... )

 (TS)   changed handling of keyword values in rev_ARValueStruct
        (assume "keyword" if first character == '\0' and length > 0)  

(JCM)   minor update to example scripts Dump_User*.pl


Released: 09/20/2005 Version: 1.85


 (TS)   added binmode-statements in t/10entry.t (test failed on win32)

 (TS)   warning cleanup in test files (t/02export.t, t/13join.t)

 (TS)   added ars_SetLogging (changes to ARS.xs, ARS.pm, support.c, support-h.template,
        html/manual/toc.html;  new files: html/manual/ars_SetLogging.html, t/21setlogging.t)

 (TS)   fixed pointer dereferencing error in supportrev.c:strmakHval

 (TS)   fixed supportrev.c:strcasecmp, strncasecmp; failure to differentiate between 
        string and substring (e.g. "page_holder" and "page")

 (TS)   fixed support.c:perl_ARByteList (Bug ID 1213180)
        (David Lindes {lindes at users.sourceforge.net})

CHANGES  view on Meta::CPAN

(JCM)   variable initialization

 (JG)   doc updates


Released: 09/20/2004 Version: 1.82


(QGM)   AR 6.x compatibility, AR encryption compatibility

(JMc)   Makefile.PL changes, code cleanup for Windows build


Released: 08/09/2003 Version: 1.81


(JCM)   memory/multithreaded issue with errhash fixed { steve.drew  at hp.com }

(JCM)   uninitialized variable issue fixed { steve.drew  at  hp.com }

(JCM)   memory free'ing on win32 issues fixed { steve.drew  at hp.com }

CHANGES  view on Meta::CPAN

(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 
        functions that no longer are available or always
        return errors indicating they are no longer implemented:
   		
   		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

CHANGES  view on Meta::CPAN

(JCM)   disabled t/11entry.t

(JCM)   minor Makefile.PL tweak

(JCM)   bug fix in perl_ARStatusStruct that caused segv with api >= 4.0


Released: 10/24/2001 Version: 1.72


(JCM)   modified Makefile.PL to handle changes to _SERVER_INFO definitions
        in 4.5.x

(JCM)   memory leak fixes

(JCM)   duplicate free badness in ars_Login() fixed

(JCM)   updated doc for ars_MergeEntry

(JCM)   added form->merge() call to OO layer

CHANGES  view on Meta::CPAN


(JCM)   modifications to example/ars_GetListEntry.pl to make
        it function with different revisions of the User form.

(JCM)   arsperl now requires at minimum perl 5.004.

(JCM)   converted "na" "sv_unref" to PL_ namespace. 
        added perl-version checking so it will still compile
        against 5.004.

(JCM) ! ars4.5 compatibility changes. the following functions
        have altered return values which will break scripts that
        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)   makefile now automatically converts C header files into
        perl files so that all constants (C 'defines') are
        available.


Released: 01/04/99 Version: 1.63


(JCM)   fixed some missing conditional compilation #if's in code

(JCM)   changes "require Config" to "use Config" in Makefile.PL
        at the request of activestate

(JCM)   added MANIFEST file to distribution


Released: 12/28/98 Version: 1.62


(JCM)   added extra decoding code to GetFilter.pl example script

CHANGES  view on Meta::CPAN


(JCM)   if compiled against API >= 4.0 then __ars_init __ars_term
        no longer do anything (but are still there). the functionality
        of each of these have been rolled into ars_Login and ars_Logoff
        respectively.

(JCM)   added ars_APIVersion() 

(JCM)   GetActiveLink, when compiled against 4.0 returns ARMessageStruct

(JCM)   applied some changes contributed by Murray Nesbitt 
        {murray at ActiveState.com} so that it will compile against the
        active state version of perl more easily. 

(JCM)   changed licensing to match that of perl itself.


Released: 09/16/98 Version: 1.61


(JCM)   new utility: example/AddUsersToGroup.pl - bulk add a bunch
        of users to a specified group 

(JCM)   new utility: example/DelUsersFromGroup.pl - bulk delete a bunch
        of users from a specified group 

(JCM)   fixed uninitialized variable warnings

(JCM)   fixed various problems with join schema entry-id handling

(JCM)   fixed bug in indexList returned by ars_GetSchema()

(JCM) ! updated all Get<object> functions so that changeDiary
        is fully decoded.

(JCM) ! changed return value of ars_DeleteEntry() so that
        ars_DeleteEntry() || die() will work as expected.

(JCM)   fixed problem in example/Show_ALink.pl

(JCM)   added/updated helper func: ars_decodeStatusHistory()

(JCM)   added example/ars_decodeStatusHistory.pl

(JCM)   fixed ars_GetSchema typo/bug w/regards to adminGroupList

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.


Released: 10/29/97 Version: 1.5204

INSTALLATION  view on Meta::CPAN

   o  WindowsNT, 2000, XP (But NOT win95)
   o  Linux (RHEL through v7)

Users of other OS's might encounted problems with compiling. We'd be
interested in hearing about your experiences and if you got it working
under a new OS.


BUILDING

To build the extension, change into the root directory of the distribution
and edit the Makefile.PL file. Change the following lines in it to point to
the location of your ARS API directory (e.g. /u/remedy/api/lib)

$ARSAPI = "/opt/remedy/api764sp5linux";
$ARCHITECTURE = "lx64";     # Linux 64-bit

Under Sunos 4.1.x, you will also need to add -lntc to $ARS_LIBS.
Under Irix 6.2, you will need to remove the -lnsl option from $ARS_LIBS.
Under HP-UX, you will need to build it statically into Perl.
Under WindowsNT you will need to insert the appropriate libraries

INSTALLATION  view on Meta::CPAN

   (https://rrr.se/cgi/index?pg=arapi)

4) Edit Makefile.PL, and update $ARSAPI to indicate where ARS API files have 
   been unpacked

5) If compiling for 64-bit, the following lines need updating in Makefile.PL 
   as well:
 
      $ARS_LIBS = join(' ', map { "$ARSAPI/lib/" . $_ } @{$ra_arlibs});

      change to:

      $ARS_LIBS = join(' ', map { "$ARSAPI/lib64/" . $_ } @{$ra_arlibs});
     

      $ARS_LDPATH = qq{-L"$ARSAPI/lib"};

      change to:

      $ARS_LDPATH = qq{-L"$ARSAPI/lib64"};


      my $ar_lib_dir = join('/', $path_to_api_dir, 'lib');

      change to:

      my $ar_lib_dir = join('/', $path_to_api_dir, 'lib64');
    
6) cd to ARSPerl directory and run perl Makefile.PL

7) dmake

8) If desired (and able!), run dmake test

9) dmake install

MANIFEST  view on Meta::CPAN

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
t/31createschema.t
t/35setactlink.t
t/aptest.def

MANIFEST  view on Meta::CPAN

.#Makefile.PL.1.85
support.c
Makefile.old
serverTypeInfoHints.h
INSTALLATION
ARS.pm
infra/c4asp.sh
infra/exsi.pl
infra/pcpp.pl
infra/h2ph
infra/mkchanges.pl
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

MANIFEST  view on Meta::CPAN

example/del_all.pl
example/PrintQual.pl
example/ChangePassword.pl
example/Get_Diary.pl
example/GetServerStatistics.pl
example/ars_GetListUser.pl
rev_AR_template.pl
StructDef.pl
pm_to_blib
README
changes.dat
META.yml
RELNOTES
typemap
Makefile.PL
support.h
ARS/ar-h.pm
ARS/_h2ph_pre.ph
ARS/CodeTemplate.pm
ARS/arerrno-h.pm
ARS/OOform.pm

Makefile.PL  view on Meta::CPAN

		$code =~ /^AR_SERVER_STAT_(\w+)/;
		print FD "  { $code, \t\t\"\L$1\E\" },\n";
	    }
	}
	elsif(/SCHEMAPERMISSIONTYPEMAP/) {
	    print "\tProcessing AR_PERMISSIONS (Schema) codes..\n";
	    my($code, $line);
	    foreach $line (grep (/^\#define\s+AR_PERMISSIONS.*/, @arh)) {
		$code = (split(/\s/, $line))[1];

		# _view & _change are field permissions
		# it would be nice if AR_PERM.. differentiated between
		# schema and field.

		if($code !~ /_VIEW|_CHANGE/) {
		    print "\t\t$code\n" if $debug;
		    $code =~ /^AR_PERMISSIONS_(\w+)/;
		    print FD "  { $code, \t\t\"\L$1\E\" },\n";
		}
	    }
	}

Makefile.PL  view on Meta::CPAN

  return $api_version;
}


#
# given an API version from above, return the minimum server version
#  that supports it.
# That is, if an API version is supported by multiple releases of the
#  AR System Server, we return the chronologically first version
#  since compiling against that version will have been the first
#  time we have arsperl will have to change to support the API change.
#
# this whole strategy of deriving the server version from the api version
#  presumes that we won't have to distinguish between releases of the
#  same api version, which may or may not be correct.
#
# the api version can be the main variable arsperl uses to adjust
#  itself however.
#

sub serverReleaseFromAPIVersion {

RELNOTES  view on Meta::CPAN


    Home Page: http://www.arsperl.org

---------------------------------------------------------------------------

1.80 Notes
----------

The 1.80 release includes ARS 5.x integration. When compiling against
ARS 5.x APIs, the ars_NT* functions (notifier library) will no longer
work. The notifier system has completely changed in release 5.0 of
ARsystem.

Regardless of what version of API you compile against, the following 
functions have had their parameters altered which means that scripts 
will need to be editted (unless you are using the OO layer).

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

RELNOTES  view on Meta::CPAN

	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
existing scripts. You might need to update those scripts when recompiling
ARSperl against the 4.5 (or later) libraries.

	Data Structure			Used/Returned By
	--------------------------------------------------------------
	Active Link Hash		ars_GetActiveLink()
	Active Link Hash		ars_CreateActiveLink()
	Filter Hash			ars_GetFilter()
	Escalation Hash			ars_GetEscalation()

The majority of users should be unaffected by this since most probably
don't retrieve the actual definitions of these objects in their
scripts. 

In addition, ars_Import() has changed. It now has a different 
parameter list. This means that existing scripts will need to 
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
----------

The 1.62 release includes ARS 4.0 integration. There are a few things
that have changed regardless of what version of ARS you compile against 
and there are things that have changed only if you are compiling against
v4.0 (or greater).

First, regardless of what version of ARS you are compiling this against,
ars_perl_qualifier now takes a control struct (in addition to the  
encoded qualifier). When compiled against pre-4.0 APIs, the control struct
parameter is still required, but is ignored. IF YOU USE THIS ROUTINE IN 
EXISTING SCRIPTS, THEY WILL NEED TO BE CHANGED.

Previously, when perl executed "use ARS;" it would automatically trigger a
call to  ARS::__ars_init(). This routine was im`ortant for setting up

RELNOTES  view on Meta::CPAN

a list of remaining functions.

1.4 Notes 
---------

The notifier functions have been added to the main package. This allows
a script to connect and register itself as a user and then receive 
notifications (examples are included).  You can also send notifications from 
a script.

Joel made all the changes to get it to compile and work against ARS3.0
So the current distribution will compile against 2.0, 2.1 and 3.0 libraries.
Everything basically remains the same so you don't need to modify your
scripts. The only things that change are the NT (notification) routines 
to a certain extent. However, since NT (notification) support is new to
this release, this shouldn't be a problem.

The doc has been reorganized as well.

1.3 Notes
---------

We've added some features for performance analysis. In particular, 
we've added the "profiling" feature to ARSperl. Now, when you call

changes.dat  view on Meta::CPAN

TS  implemented ars_qualifier_ptr function (inverse of ars_perl_qualifier)
TS  added ownerObjList parameter to ars_GetListContainer
TS  fixed AR_SERVER_INFO type identification in infra/exsi.pl
TS  updated version numbers in INSTALLATION
TS  added ars_DateToJulianDate, ars_GetListLicense, ars_ValidateMultipleLicenses,
    ars_GetServerCharSet, ars_GetClientCharSet
TS  fixed actionList/elseList bug in ars_SetActiveLink
TS  added AR_DATA_TYPE_VIEW handling to perl_ARValueStruct_Assign,rev_ARActiveLinkActionList
TS  modified Makefile.PL for easier automated testing (handling of ARSPERLTEST_PARAM)
TS  added ars_GetListRole, ars_Signal, ars_GetTextForErrorMessage
!TS  changed return struct of ars_GetListGroup
TS  fixed IVLD macro in support-h.template

released=05/06/2008 version=1.91
TS  fixed ars_padEntryid to work correctly if entry ID prefix is defined
TS  replaced malloc-on-windows patch by UNDEF_PERL_MALLOC compilation option in Makefile.PL
TS  fixed pointer initialization error in ars_SetVUI
TS  modified ars_Create/Get/SetFilter for API 7.1
TS  fixed ars_GetAlertCount
MB  removed legacy ars_NT Notifier and ars_AdminExtension calls
!MB  added ars_VerifyUser implementation by Thilo Stapff
!MB  changed ars_APIVersion to use AR_CURRENT_API_VERSION rather than AR_EXPORT_VERSION
MB  fixed ars_GetActiveLink, ars_GetFilter, ars_GetEscalation, ars_GetField so they 
    return undef on failure.
JCM buffer overflow in perl_BuildEntryList
JCM malloc-on-windows patch by John Unsworth
TS  fixed memory leak in ars_Get... functions (added "sv_2mortal( (SV*) RETVAL )")
TS  bugfix in dup_Value (support.c) for API version <= 5.0.1
TS  changed enum limits processing in perl_ARFieldLimitStruct for API version <= 5.0.1
TS  updated MANIFEST file
TS  replaced strdup() by arsperl_strdup() for win32 to fix problems with VisualStudio8
TS  changed type of "owner" attribute: ARNameType -> ARAccessNameType
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"
TS  added ars_CreateContainer, ars_SetContainer
TS  added ars_CreateFilter, ars_SetFilter, ars_CreateEscalation, ars_SetEscalation,
    ars_SetActiveLink
TS  added declaration of boolcpyHVal(...) to supportrev.h
TS  added declaration of revTypeName(...) to supportrev.h
TS  added "rev_ARReferenceStruct" to supportrev.c
TS  changed perl_ARReferenceStruct (added "value_dataType" key, necessary for
    ars_CreateContainer)
TS  changed ars_CreateActiveLink to read "schemaList" from alDef struct
TS  bugfix in rev_ARMessageStruct
    ( hv_exists(h,"messageType"... ->  hv_exists(a,"messageType"... )
TS  moved declaration of rev_ARMessageStruct from supportrev.c to supportrev.h
TS  bugfix in rev_ARAssignFieldStruct_helper: hv_exists needs key length
TS  bugfix in rev_ARAssignFieldStruct_helper: hv_exists needs key length
    (dup_qualifier2(...) != NULL ... return ...)
TS  added case: AR_COND_OP_FROM_FIELD to dup_qualifier2
TS  added functions perl_ARSetFieldsActionStruct, perl_ARPushFieldsActionStruct;
    changed perl_ARFilterActionStruct accordingly.
TS  bugfix in rev_ARFunctionAssignStruct (parameterList[i] -> parameterList[i-1])
TS  bugfix in rev_ARArithOpAssignStruct_helper (AR_ARITH_OP_NEGATE uses operandRight,
    not operandLeft), fixed condition for AR_ARITH_OP_NEGATE.
TS  bugfix in rev_ARAssignSQLStruct
    (strcpyHVal(hr,"sqlCommand"...)  -> strmakHVal(hr, "sqlCommand"...))
TS  bugfix in rev_ARActiveLinkMacroParmList (... == SVt_PVAV -> ... == SVt_PVHV) 
TS  bugfix in rev_ARActiveLinkMacroParmList (copymem -> strdup) 
TS  changed rev_ARValueStructDiary to support non-hashref diary values
    (necessary in ARAssignStruct context)
TS  added ars_CreateSchema, ars_SetSchema, ars_CreateField, ars_SetField,
    ars_CreateVUI, ars_SetVUI
TS  added scripts (StructDef.pl, rev_AR_template.pl) for automatic generation of
    conversion code (perl data structures -> AR API structs)
TS  added module (ARS/CodeTemplate.pm) for code generation
TS  change in perl_ARFieldValueOrArithStruct; if tag == AR_VALUE, put dataType into hash
TS  added check for h != NULL to strcpyHVal 
TS  added "case AR_COND_OP_FROM_FIELD" to perl_qualifier()
TS  changed handling of qualifier structs in perl_ARFieldLimitStruct, perl_ARJoinSchema,
    perl_ARArchiveInfoStruct; those functions now return the converted perl structure
    instead of the pointer to a C structure. 
TS  fixed Makefile.PL to work with $ARSAPI containing spaces on Windows
TS  added ars_DeleteContainer (changes to ARS.xs, ARS.pm)
TS  fixed Makefile.PL to use $ra_arlibs for Version <= 5.0 on Windows
TS  fixed rev_ARValueStructStr2Type: use strcasecmp instead of strncasecmp
    (failure to differentiate between string and substring)
TS  added "case AR_DATA_TYPE_CURRENCY" to perl_ARValueStruct
TS  moved existing code for AR_DATA_TYPE_CURRENCY from sv_to_ARValueStruct
    to new function sv_to_ARCurrencyStruct, completed ARCurrencyStruct handling
TS  added handling of AR_DATA_TYPE_DATE, AR_DATA_TYPE_TIME_OF_DAY,
    to rev_ARValueStruct, sv_to_ARValueStruct
TS  added conversion functions rev_ARDisplayInstanceList,
    rev_ARDisplayInstanceStruct and rev_ARPermissionList
TS  fixed DESTROY(ctrl) (use safefree if allocated with safemalloc)
TS  minor fix in in rev_ARValueStructKW2KN (*keyword == '\0')
TS  minor fix in rev_ARCoordList_helper ( if (hv_exists("x"... )
TS  changed handling of keyword values in rev_ARValueStruct
    (assume "keyword" if first character == '\0' and length > 0)  
JCM minor update to example scripts Dump_User*.pl

released=09/20/2005 version=1.85
TS  added binmode-statements in t/10entry.t (test failed on win32)
TS  warning cleanup in test files (t/02export.t, t/13join.t)
TS  added ars_SetLogging (changes to ARS.xs, ARS.pm, support.c, support-h.template,
    html/manual/toc.html;  new files: html/manual/ars_SetLogging.html, t/21setlogging.t)
TS  fixed pointer dereferencing error in supportrev.c:strmakHval
TS  fixed supportrev.c:strcasecmp, strncasecmp; failure to differentiate between 
    string and substring (e.g. "page_holder" and "page")
TS  fixed support.c:perl_ARByteList (Bug ID 1213180)
    (David Lindes {lindes at users.sourceforge.net})
TS  added support for DATA_TYPE_CURRENCY to perl_ARFieldLimitStruct
TS  added function perl_ARCurrencyDetailList
TS  fixed support.c:my_strtok, perl_BuildEntryList
    (ars_GetEntry crashed when retrieving join form entries)

changes.dat  view on Meta::CPAN

JCM fixed 'autosplit' issue in Makefile.PL
IT  Updates by Ian Trimnell for ars_GetListContainer and ars_GetContainer

released=03/14/2005 version=1.83
JCM fixed "lang" compilation error for API 6.3
JCM variable initialization
JG  doc updates

released=09/20/2004 version=1.82
QGM AR 6.x compatibility, AR encryption compatibility
JMc Makefile.PL changes, code cleanup for Windows build

released=08/09/2003 version=1.81
JCM memory/multithreaded issue with errhash fixed { steve.drew  at hp.com }
JCM uninitialized variable issue fixed { steve.drew  at  hp.com }
JCM memory free'ing on win32 issues fixed { steve.drew  at hp.com }
JCM minor fix to OO->query (forgot the new firstretrieve param)

released=04/16/2003 version=1.8001
JCM memory leak fixed in ars_CreateEntry
JCM memory leak fixed in ars_SetEntry

changes.dat  view on Meta::CPAN

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
    compilation warnings on windows
JCM disabled t/11entry.t
JCM minor Makefile.PL tweak
JCM bug fix in perl_ARStatusStruct that caused segv with api >= 4.0

released=10/24/2001 version=1.72
JCM modified Makefile.PL to handle changes to _SERVER_INFO definitions
    in 4.5.x
JCM memory leak fixes
JCM duplicate free badness in ars_Login() fixed
JCM updated doc for ars_MergeEntry
JCM added form->merge() call to OO layer
JCM fixed 4.5.2 induced warning (now there's a FilterActionStruct)
    modified Makefile.PL so you can specify ARVERSION=4.52 

released=10/30/2000 version=1.71
JCM modified support-h.template to compile against api3.0

changes.dat  view on Meta::CPAN

JCM typo fix in ARS.xs for perl5.6 compatibility
JCM documenation update (ars_Import)

released=7/4/2000 version=1.68
JCM modifications to example/ars_GetListEntry.pl to make
    it function with different revisions of the User form.
JCM arsperl now requires at minimum perl 5.004.
JCM converted "na" "sv_unref" to PL_ namespace. 
    added perl-version checking so it will still compile
    against 5.004.
!JCM 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 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 basic OO layer
JCM  added small test suite
JCM  fixed some broken 4.0 related conditional compilation
           stuff
JCM  makefile now automatically converts C header files into
           perl files so that all constants (C 'defines') are
           available.

released=01/04/99  version=1.63
JCM  fixed some missing conditional compilation #if's in code
JCM  changes "require Config" to "use Config" in Makefile.PL
           at the request of activestate
JCM  added MANIFEST file to distribution

released=12/28/98 version=1.62
JCM  added extra decoding code to GetFilter.pl example script
JCM  syntax errors fixed in some example scripts
JCM  added bug fix to NTRegisterServer from  G David Frye {gdf at uiuc.edu}
!JCM  ars4.0 integration (see RELNOTES for important compatibility
           information)
!JCM  perl_qualifier() now takes a control struct 
JCM  if compiled against API &gt;= 4.0 then __ars_init __ars_term
           no longer do anything (but are still there). the functionality
           of each of these have been rolled into ars_Login and ars_Logoff
           respectively.
JCM  added ars_APIVersion() 
JCM  GetActiveLink, when compiled against 4.0 returns ARMessageStruct
JCM  applied some changes contributed by Murray Nesbitt 
           {murray at ActiveState.com} so that it will compile against the
           active state version of perl more easily. 
JCM  changed licensing to match that of perl itself.

released=09/16/98 version=1.61
JCM  new utility: example/AddUsersToGroup.pl - bulk add a bunch
		of users to a specified group 
JCM  new utility: example/DelUsersFromGroup.pl - bulk delete a bunch
		of users from a specified group 
JCM  fixed uninitialized variable warnings
JCM  fixed various problems with join schema entry-id handling
JCM  fixed bug in indexList returned by ars_GetSchema()
!JCM  updated all Get&lt;object&gt; functions so that changeDiary
           is fully decoded.
!JCM  changed return value of ars_DeleteEntry() so that
           ars_DeleteEntry() || die() will work as expected.
JCM  fixed problem in example/Show_ALink.pl
JCM  added/updated helper func: ars_decodeStatusHistory()
JCM  added example/ars_decodeStatusHistory.pl
JCM  fixed ars_GetSchema typo/bug w/regards to adminGroupList
JCM  fixed GetField.pl example so that it decodes everything
JCM  patch for bug in ars_GetServerInfo()
JCM  updated Makefile.PL to dynamically generate the support.h
           file based on the ar.h file specified.

changes.dat  view on Meta::CPAN

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
JCM  beginnings of a WinNT port (not completed yet)

example/AddUsersToGroup.pl  view on Meta::CPAN

# Verified and updated examples.
# Removed ars_GetFullTextInfo.pl because ars_GetFullTextInfo is obsolete since ARS > 6.01
#
# Revision 1.4  2007/08/04 15:20:04  mbeijen
# Adjusted the code for current ARSperl version, added use strict; and added comments.
#
# Revision 1.3  2003/03/28 05:51:56  jcmurphy
# more 5.x editsgv
#
# Revision 1.2  1998/09/14 20:48:59  jcmurphy
# changed usage, comments. fixed bug.
#
#

use ARS;
use strict;
use warnings;

die "usage: AddUserToGroup server username password group user1 [user2] ...\n"
  if ( $#ARGV < 4 );

example/ChangePassword.pl  view on Meta::CPAN

#!/usr/bin/perl

#
# NAME
#  ChangePassword.pl server username password newpassword
#
# DESCRIPTION
#  This script allows a user to change his password. Since user accounts are just
#  plain records in a form we use the common getlistentry and setentry calls to
#  fetch the user's record and update the password field.
#  Note that on some systems permissions are set strangely and depending on
#  the type of license you have you might not be able to update your password
#  (Think Read Restricted licenses...)
#  Also on some systems the User form is renamed to something other than "User".
#
# AUTHOR
#  Michiel Beijen, Mansolutions, 2007.
#

example/ChangePassword.pl  view on Meta::CPAN

  || die "ars_LoadQualifier(User): $ars_errstr";

# fetch the Entry ID for this user by using GetListEntry with the qualifier we
# just specified, otherwise die.
my @userentry = ars_GetListEntry( $ctrl, "User", $userqualifier, 0, 0 );
die "No such user $user? ($ars_errstr)\n" if ( $#userentry == -1 );

# Change the password for this user by setting field 102 (the password field) with the new value
ars_SetEntry( $ctrl, "User", $userentry[0], 0, 102, $newpassword )
  || die "Error updating password: $ars_errstr";
print "Password changed for user $user on server $server\n";

example/Dump_Users.pl  view on Meta::CPAN

#
# $Log: Dump_Users.pl,v $
# Revision 1.8  2009/03/31 13:34:32  mbeijen
# Verified and updated examples.
# Removed ars_GetFullTextInfo.pl because ars_GetFullTextInfo is obsolete since ARS > 6.01
#
# Revision 1.7  2007/03/13 13:20:32  jeffmurphy
# minor update to example scripts
#
# Revision 1.6  2003/03/27 17:58:42  jcmurphy
# 5.0 changes, bug fixes
#
# Revision 1.5  1999/05/05 19:57:59  rgc
# DumpUsers.
#
# Revision 1.4  1998/12/28 15:23:29  jcmurphy
# fixed up "Login name" query for ARS4.0 ("Login Name")
#
# Revision 1.3  1997/09/30 04:49:13  jcmurphy
# added some error output
# /

example/Dump_Users_OO.pl  view on Meta::CPAN

#   Example of Object Oriented programming layered on top of ARSperl
#
# AUTHOR
#   Jeff Murphy
#
# $Log: Dump_Users_OO.pl,v $
# Revision 1.3  2007/03/13 13:20:32  jeffmurphy
# minor update to example scripts
#
# Revision 1.2  1999/05/26 03:42:46  jcmurphy
# minor change to exception handler
#
# Revision 1.1  1999/05/05 19:57:40  rgc
# Initial revision
#

use strict;
use ARS;
require Carp;

sub mycatch { 

example/GetCharMenu.pl  view on Meta::CPAN

# 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
# fixed syntax error
#
# Revision 1.4  1998/09/16 14:38:31  jcmurphy
# updated changeDiary code
#
# Revision 1.3  1998/02/25 19:21:32  jcmurphy
# updated to printout query if query style menu
#
# Revision 1.2  1997/11/10 23:36:52  jcmurphy
# added refreshCode to the output
#
# Revision 1.1  1996/11/21 20:13:51  jcmurphy
# Initial revision
#

example/GetCharMenu.pl  view on Meta::CPAN

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";
    print "\tWHAT: $_->{'value'}\n";
}

print "refreshCode : ".$finfo->{"refreshCode"}."\n";
print "menuType    : ".$finfo->{"menuType"}."\n";

if($finfo->{menuType} eq "query") {

example/GetFilter.pl  view on Meta::CPAN

# Revision 1.8  2000/06/01 16:54:03  jcmurphy
# *** empty log message ***
#
# Revision 1.7  1998/10/14 15:06:10  jcmurphy
# added some extra decoding for set fields actions.
#
# Revision 1.6  1998/10/14 13:54:53  jcmurphy
# fixed syntax error
#
# Revision 1.5  1998/09/16 14:38:31  jcmurphy
# updated changeDiary code
#
# Revision 1.4  1998/04/22 17:25:46  jcmurphy
# added example code to show decoding of SQL/SetFields actions.
#
# Revision 1.3  1998/03/12 20:44:57  jcmurphy
# minor changes to allow specification of a server
#
# Revision 1.2  1997/02/20 19:33:15  jcmurphy
# *** empty log message ***
#
# Revision 1.1  1996/11/21 20:13:52  jcmurphy
# Initial revision
#
#

use ARS;

example/GetFilter.pl  view on Meta::CPAN

}

print "actionList  : \n";

ProcessActions(@{$finfo->{actionList}});

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";
    print "\tWHAT: $_->{'value'}\n";
}

ars_Logoff($ctrl);

exit 0;

# Most of these subroutines were taken directly from Show_ALink.pl

example/Show_ALink.pl  view on Meta::CPAN

# Revision 1.6  2000/06/01 16:54:03  jcmurphy
# *** empty log message ***
#
# Revision 1.5  1998/09/14 17:41:05  jcmurphy
# added ChangeDiary decoding lines
#
# Revision 1.4  1998/09/11 17:49:47  jcmurphy
# updated EXECUTE_ON definitions
#
# Revision 1.3  1998/09/11 17:22:13  jcmurphy
# changed macroParms from array to hash since it is
# a hashref.
#
# Revision 1.2  1997/11/11 15:04:47  jcmurphy
# added qual decoding
#
# Revision 1.1  1996/11/21 20:13:55  jcmurphy
# Initial revision
#
#

example/Show_ALink.pl  view on Meta::CPAN

} else {
	print "    Qual Text: [none defined]\n";
}

print  "Actions:\n";

ProcessActions(@{$a->{actionList}});

print  "Help Text: ".$a->{helpText}."\n";
print  "Owner: ".$a->{owner}."\n";
print  "Last changed by: ".$a->{lastChanged}."\n";
print  "Last Modified: ".localtime($a->{timestamp})."\n";
print  "Change Diary: $a->{changeDiary}\n";

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

# Log out of the server.

ars_Logoff($ctrl);

exit 0;

example/ars_CopyActiveLink.pl  view on Meta::CPAN

#   ars_CopyActiveLink.pl [server] [username] [password] [active link]
#
# DESCRIPTION
#   copies the given active link to "Copy of ..."
#
# AUTHOR
#   Jeff murphy
#
# $Log: ars_CopyActiveLink.pl,v $
# Revision 1.2  1998/09/14 17:38:47  jcmurphy
# changed #!perl path
#
# Revision 1.1  1997/09/04 00:16:00  jcmurphy
# Initial revision
#
#

use ARS;

($c = ars_Login(shift, shift, shift)) ||
	die "login: $ars_errstr";

example/ars_MergeEntry.pl  view on Meta::CPAN

#
# $Header: /cvsroot/arsperl/ARSperl/example/ars_MergeEntry.pl,v 1.2 2007/07/20 19:57:59 jeffmurphy Exp $
#
# NAME
#   ars_MergeEntry.pl [server] [user] [password] [schema] [diaryfieldname] 
#             [entryid]
#
# DESCRIPTION
#   open the named schema and retrieve the contents of the diary field
#   for the specified entryid. if the diary field contains entries, 
#   change the first entry and merge it back into the record.
#
# AUTHOR
#   jeff murphy
#
# $Log: ars_MergeEntry.pl,v $
# Revision 1.2  2007/07/20 19:57:59  jeffmurphy
# minor doc edits
#
# Revision 1.1  1998/02/09 17:57:04  jcmurphy
# Initial revision

example/ars_decodeStatusHistory.pl  view on Meta::CPAN

#   history values.
#
# AUTHOR
#   Jeff murphy
#
# $Log: ars_decodeStatusHistory.pl,v $
# Revision 1.3  2007/08/02 14:48:21  mbeijen
# modified examples for ExecuteProcess and decodeStatusHistory
#
# Revision 1.2  1998/09/14 17:39:20  jcmurphy
# changed #!perl path
#
# Revision 1.1  1998/09/11 15:51:42  jcmurphy
# Initial revision
#
#
#

use ARS;
use warnings;
use strict;

html/DumpSetup.html  view on Meta::CPAN

 </HEAD> 
 <BODY BGCOLOR="#FFFFFF">
 <H2>DumpSetup.pl</H2>

 <H3> Purpose </H3>

 This utility helps you maintain backup copies of your ARS definitions
 (but not table data). It accomplishes this by exporting all of the
 definitions to text files and then "checking them in" to an RCS system.
 In this fashion, no additional diskspace is used for maintaining backup
 copies unless there is a change to the definition file. 

 <H3> Ancillary Utilities </H3>

 RCS. See GNU FTP Site <A HREF="ftp://prep.ai.mit.edu/pub/gnu/">prep.ai.mit.edu</A>

 <H3> Author </H3>
 Joel Murphy<BR>
 <A HREF="mailto:jmurphy@acsu.buffalo.edu">jmurphy@acsu.buffalo.edu</A>

 <H3> Usage </H3>

html/changes.html  view on Meta::CPAN

 <table  border='0'>
 <tr><td>BM</td><td>=</td><td>Bill Middleton {wjm at metronet.com}</td></tr>
 <tr><td>GDF</td><td>=</td><td>G. David Frye {gdf at uiuc.edu}</td></tr>
 <tr><td>JCM</td><td>=</td><td>Jeff Murphy {jeffmurphy at sourceforge.net}</td></tr>
 <tr><td>JWM</td><td>=</td><td>Joel Murphy {jmurphy at buffalo.edu}</td></tr>
 <tr><td>TS</td><td>=</td><td>Thilo Stapff {tstapff at sourceforge.net}</td></tr>
 <tr><td>CL</td><td>=</td><td>Chris Leach {Chris.Leach at kaz-group.com}</td></tr>
 <tr><td>JL</td><td>=</td><td>John Luthgers {jls17 at gmx.net}</td></tr>
 </table>
 <P>
 The following lists the changes that have been made
 for each release of ARSperl.
 <P>
 Items in <font color='red'>red</font> 
 denote changes that are incompatible with
 previous versions of ARSperl and may require altering of some ARSperl
 scripts.<P>

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

html/changes.html  view on Meta::CPAN

<tr bgcolor='#eeeeee'><td width='10%'>(TS)</td><td width='90%'><font color='black'>added ars_DateToJulianDate, ars_GetListLicense, ars_ValidateMultipleLicenses, 
ars_GetServerCharSet, ars_GetClientCharSet </font></td></tr>
<tr bgcolor='#dddddd'><td width='10%'>(TS)</td><td width='90%'><font color='black'>fixed actionList/elseList bug in ars_SetActiveLink 
</font></td></tr>
<tr bgcolor='#eeeeee'><td width='10%'>(TS)</td><td width='90%'><font color='black'>added AR_DATA_TYPE_VIEW handling to perl_ARValueStruct_Assign,rev_ARActiveLinkActionList 
</font></td></tr>
<tr bgcolor='#dddddd'><td width='10%'>(TS)</td><td width='90%'><font color='black'>modified Makefile.PL for easier automated testing (handling of ARSPERLTEST_PARAM) 
</font></td></tr>
<tr bgcolor='#eeeeee'><td width='10%'>(TS)</td><td width='90%'><font color='black'>added ars_GetListRole, ars_Signal, ars_GetTextForErrorMessage 
</font></td></tr>
<tr bgcolor='#dddddd'><td width='10%'>(TS)</td><td width='90%'><font color='red'>changed return struct of ars_GetListGroup 
</font></td></tr>
<tr bgcolor='#eeeeee'><td width='10%'>(TS)</td><td width='90%'><font color='black'>fixed IVLD macro in support-h.template 
</table></td></tr></table>

<P>


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

html/changes.html  view on Meta::CPAN

<tr bgcolor='#eeeeee'><td width='10%'>(TS)</td><td width='90%'><font color='black'>fixed pointer initialization error in ars_SetVUI 
</font></td></tr>
<tr bgcolor='#dddddd'><td width='10%'>(TS)</td><td width='90%'><font color='black'>modified ars_Create/Get/SetFilter for API 7.1 
</font></td></tr>
<tr bgcolor='#eeeeee'><td width='10%'>(TS)</td><td width='90%'><font color='black'>fixed ars_GetAlertCount 
</font></td></tr>
<tr bgcolor='#dddddd'><td width='10%'>(MB)</td><td width='90%'><font color='black'>removed legacy ars_NT Notifier and ars_AdminExtension calls 
</font></td></tr>
<tr bgcolor='#eeeeee'><td width='10%'>(MB)</td><td width='90%'><font color='red'>added ars_VerifyUser implementation by Thilo Stapff 
</font></td></tr>
<tr bgcolor='#dddddd'><td width='10%'>(MB)</td><td width='90%'><font color='red'>changed ars_APIVersion to use AR_CURRENT_API_VERSION rather than AR_EXPORT_VERSION 
</font></td></tr>
<tr bgcolor='#eeeeee'><td width='10%'>(MB)</td><td width='90%'><font color='black'>fixed ars_GetActiveLink, ars_GetFilter, ars_GetEscalation, ars_GetField so they  
return undef on failure. </font></td></tr>
<tr bgcolor='#dddddd'><td width='10%'>(JCM)</td><td width='90%'><font color='black'>buffer overflow in perl_BuildEntryList 
</font></td></tr>
<tr bgcolor='#eeeeee'><td width='10%'>(JCM)</td><td width='90%'><font color='black'>malloc-on-windows patch by John Unsworth 
</font></td></tr>
<tr bgcolor='#dddddd'><td width='10%'>(TS)</td><td width='90%'><font color='black'>fixed memory leak in ars_Get... functions (added "sv_2mortal( (SV*) RETVAL )") 
</font></td></tr>
<tr bgcolor='#eeeeee'><td width='10%'>(TS)</td><td width='90%'><font color='black'>bugfix in dup_Value (support.c) for API version <= 5.0.1 
</font></td></tr>
<tr bgcolor='#dddddd'><td width='10%'>(TS)</td><td width='90%'><font color='black'>changed enum limits processing in perl_ARFieldLimitStruct for API version <= 5.0.1 
</font></td></tr>
<tr bgcolor='#eeeeee'><td width='10%'>(TS)</td><td width='90%'><font color='black'>updated MANIFEST file 
</font></td></tr>
<tr bgcolor='#dddddd'><td width='10%'>(TS)</td><td width='90%'><font color='black'>replaced strdup() by arsperl_strdup() for win32 to fix problems with VisualStudio8 
</font></td></tr>
<tr bgcolor='#eeeeee'><td width='10%'>(TS)</td><td width='90%'><font color='black'>changed type of "owner" attribute: ARNameType -> ARAccessNameType 
</font></td></tr>
<tr bgcolor='#dddddd'><td width='10%'>(TS)</td><td width='90%'><font color='black'>corrected function signature for ars_SetVUI, ars_CreateSchema 
</font></td></tr>
<tr bgcolor='#eeeeee'><td width='10%'>(TS)</td><td width='90%'><font color='black'>fixed memory leak in sv_to_ARValue (support.c) 
</font></td></tr>
<tr bgcolor='#dddddd'><td width='10%'>(TS)</td><td width='90%'><font color='black'>fixed memory leak in ars_GetMultipleEntries, ars_GetListEntryWithFields 
XPUSHs(newRV_noinc(...)) -> XPUSHs(sv_2mortal(newRV_noinc(...))) </font></td></tr>
<tr bgcolor='#eeeeee'><td width='10%'>(TS)</td><td width='90%'><font color='black'>added "name" value to schemaHash returned by ars_GetSchema 
</font></td></tr>
<tr bgcolor='#dddddd'><td width='10%'>(TS)</td><td width='90%'><font color='black'>fixed rev_ARArchiveInfo Struct, moved function from supportrev_generated.c to supportrev.c 
</font></td></tr>
<tr bgcolor='#eeeeee'><td width='10%'>(TS)</td><td width='90%'><font color='black'>changed $ARS_LIBS variable for 7.0 Unix API in Makefile.pl (-licuuc -> -licuucbmc) 
</table></td></tr></table>

<P>


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

html/changes.html  view on Meta::CPAN

  <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) 
</font></td></tr>
<tr bgcolor='#dddddd'><td width='10%'>(TS)</td><td width='90%'><font color='black'>added ars_SetSessionConfiguration 
</font></td></tr>
<tr bgcolor='#eeeeee'><td width='10%'>(TS)</td><td width='90%'><font color='black'>completed sv_to_ARCurrencyStruct (support.c) 
</font></td></tr>
<tr bgcolor='#dddddd'><td width='10%'>(TS)</td><td width='90%'><font color='black'>ARS.pm: set $ARS::logging_file_ptr = 0 to avoid "uninitialized" warning  
</font></td></tr>
<tr bgcolor='#eeeeee'><td width='10%'>(TS)</td><td width='90%'><font color='black'>changed t/01import.t to import form "ARSperl Test3" 
</font></td></tr>
<tr bgcolor='#dddddd'><td width='10%'>(TS)</td><td width='90%'><font color='black'>added ars_CreateContainer, ars_SetContainer 
</font></td></tr>
<tr bgcolor='#eeeeee'><td width='10%'>(TS)</td><td width='90%'><font color='black'>added ars_CreateFilter, ars_SetFilter, ars_CreateEscalation, ars_SetEscalation, 
ars_SetActiveLink </font></td></tr>
<tr bgcolor='#dddddd'><td width='10%'>(TS)</td><td width='90%'><font color='black'>added declaration of boolcpyHVal(...) to supportrev.h 
</font></td></tr>
<tr bgcolor='#eeeeee'><td width='10%'>(TS)</td><td width='90%'><font color='black'>added declaration of revTypeName(...) to supportrev.h 
</font></td></tr>
<tr bgcolor='#dddddd'><td width='10%'>(TS)</td><td width='90%'><font color='black'>added "rev_ARReferenceStruct" to supportrev.c 
</font></td></tr>
<tr bgcolor='#eeeeee'><td width='10%'>(TS)</td><td width='90%'><font color='black'>changed perl_ARReferenceStruct (added "value_dataType" key, necessary for 
ars_CreateContainer) </font></td></tr>
<tr bgcolor='#dddddd'><td width='10%'>(TS)</td><td width='90%'><font color='black'>changed ars_CreateActiveLink to read "schemaList" from alDef struct 
</font></td></tr>
<tr bgcolor='#eeeeee'><td width='10%'>(TS)</td><td width='90%'><font color='black'>bugfix in rev_ARMessageStruct 
( hv_exists(h,"messageType"... ->  hv_exists(a,"messageType"... ) </font></td></tr>
<tr bgcolor='#dddddd'><td width='10%'>(TS)</td><td width='90%'><font color='black'>moved declaration of rev_ARMessageStruct from supportrev.c to supportrev.h 
</font></td></tr>
<tr bgcolor='#eeeeee'><td width='10%'>(TS)</td><td width='90%'><font color='black'>bugfix in rev_ARAssignFieldStruct_helper: hv_exists needs key length 
</font></td></tr>
<tr bgcolor='#dddddd'><td width='10%'>(TS)</td><td width='90%'><font color='black'>bugfix in rev_ARAssignFieldStruct_helper: hv_exists needs key length 
(dup_qualifier2(...) != NULL ... return ...) </font></td></tr>
<tr bgcolor='#eeeeee'><td width='10%'>(TS)</td><td width='90%'><font color='black'>added case: AR_COND_OP_FROM_FIELD to dup_qualifier2 
</font></td></tr>
<tr bgcolor='#dddddd'><td width='10%'>(TS)</td><td width='90%'><font color='black'>added functions perl_ARSetFieldsActionStruct, perl_ARPushFieldsActionStruct; 
changed perl_ARFilterActionStruct accordingly. </font></td></tr>
<tr bgcolor='#eeeeee'><td width='10%'>(TS)</td><td width='90%'><font color='black'>bugfix in rev_ARFunctionAssignStruct (parameterList[i] -> parameterList[i-1]) 
</font></td></tr>
<tr bgcolor='#dddddd'><td width='10%'>(TS)</td><td width='90%'><font color='black'>bugfix in rev_ARArithOpAssignStruct_helper (AR_ARITH_OP_NEGATE uses operandRight, 
not operandLeft), fixed condition for AR_ARITH_OP_NEGATE. </font></td></tr>
<tr bgcolor='#eeeeee'><td width='10%'>(TS)</td><td width='90%'><font color='black'>bugfix in rev_ARAssignSQLStruct 
(strcpyHVal(hr,"sqlCommand"...)  -> strmakHVal(hr, "sqlCommand"...)) </font></td></tr>
<tr bgcolor='#dddddd'><td width='10%'>(TS)</td><td width='90%'><font color='black'>bugfix in rev_ARActiveLinkMacroParmList (... == SVt_PVAV -> ... == SVt_PVHV)  
</font></td></tr>
<tr bgcolor='#eeeeee'><td width='10%'>(TS)</td><td width='90%'><font color='black'>bugfix in rev_ARActiveLinkMacroParmList (copymem -> strdup)  
</font></td></tr>
<tr bgcolor='#dddddd'><td width='10%'>(TS)</td><td width='90%'><font color='black'>changed rev_ARValueStructDiary to support non-hashref diary values 
(necessary in ARAssignStruct context) </font></td></tr>
<tr bgcolor='#eeeeee'><td width='10%'>(TS)</td><td width='90%'><font color='black'>added ars_CreateSchema, ars_SetSchema, ars_CreateField, ars_SetField, 
ars_CreateVUI, ars_SetVUI </font></td></tr>
<tr bgcolor='#dddddd'><td width='10%'>(TS)</td><td width='90%'><font color='black'>added scripts (StructDef.pl, rev_AR_template.pl) for automatic generation of 
conversion code (perl data structures -> AR API structs) </font></td></tr>
<tr bgcolor='#eeeeee'><td width='10%'>(TS)</td><td width='90%'><font color='black'>added module (ARS/CodeTemplate.pm) for code generation 
</font></td></tr>
<tr bgcolor='#dddddd'><td width='10%'>(TS)</td><td width='90%'><font color='black'>change in perl_ARFieldValueOrArithStruct; if tag == AR_VALUE, put dataType into hash 
</font></td></tr>
<tr bgcolor='#eeeeee'><td width='10%'>(TS)</td><td width='90%'><font color='black'>added check for h != NULL to strcpyHVal  
</font></td></tr>
<tr bgcolor='#dddddd'><td width='10%'>(TS)</td><td width='90%'><font color='black'>added "case AR_COND_OP_FROM_FIELD" to perl_qualifier() 
</font></td></tr>
<tr bgcolor='#eeeeee'><td width='10%'>(TS)</td><td width='90%'><font color='black'>changed handling of qualifier structs in perl_ARFieldLimitStruct, perl_ARJoinSchema, 
perl_ARArchiveInfoStruct; those functions now return the converted perl structure instead of the pointer to a C structure.  </font></td></tr>
<tr bgcolor='#dddddd'><td width='10%'>(TS)</td><td width='90%'><font color='black'>fixed Makefile.PL to work with $ARSAPI containing spaces on Windows 
</font></td></tr>
<tr bgcolor='#eeeeee'><td width='10%'>(TS)</td><td width='90%'><font color='black'>added ars_DeleteContainer (changes to ARS.xs, ARS.pm) 
</font></td></tr>
<tr bgcolor='#dddddd'><td width='10%'>(TS)</td><td width='90%'><font color='black'>fixed Makefile.PL to use $ra_arlibs for Version <= 5.0 on Windows 
</font></td></tr>
<tr bgcolor='#eeeeee'><td width='10%'>(TS)</td><td width='90%'><font color='black'>fixed rev_ARValueStructStr2Type: use strcasecmp instead of strncasecmp 
(failure to differentiate between string and substring) </font></td></tr>
<tr bgcolor='#dddddd'><td width='10%'>(TS)</td><td width='90%'><font color='black'>added "case AR_DATA_TYPE_CURRENCY" to perl_ARValueStruct 
</font></td></tr>
<tr bgcolor='#eeeeee'><td width='10%'>(TS)</td><td width='90%'><font color='black'>moved existing code for AR_DATA_TYPE_CURRENCY from sv_to_ARValueStruct 
to new function sv_to_ARCurrencyStruct, completed ARCurrencyStruct handling </font></td></tr>
<tr bgcolor='#dddddd'><td width='10%'>(TS)</td><td width='90%'><font color='black'>added handling of AR_DATA_TYPE_DATE, AR_DATA_TYPE_TIME_OF_DAY, 
to rev_ARValueStruct, sv_to_ARValueStruct </font></td></tr>
<tr bgcolor='#eeeeee'><td width='10%'>(TS)</td><td width='90%'><font color='black'>added conversion functions rev_ARDisplayInstanceList, 
rev_ARDisplayInstanceStruct and rev_ARPermissionList </font></td></tr>
<tr bgcolor='#dddddd'><td width='10%'>(TS)</td><td width='90%'><font color='black'>fixed DESTROY(ctrl) (use safefree if allocated with safemalloc) 
</font></td></tr>
<tr bgcolor='#eeeeee'><td width='10%'>(TS)</td><td width='90%'><font color='black'>minor fix in in rev_ARValueStructKW2KN (*keyword == '\0') 
</font></td></tr>
<tr bgcolor='#dddddd'><td width='10%'>(TS)</td><td width='90%'><font color='black'>minor fix in rev_ARCoordList_helper ( if (hv_exists("x"... ) 
</font></td></tr>
<tr bgcolor='#eeeeee'><td width='10%'>(TS)</td><td width='90%'><font color='black'>changed handling of keyword values in rev_ARValueStruct 
(assume "keyword" if first character == '\0' and length > 0)   </font></td></tr>
<tr bgcolor='#dddddd'><td width='10%'>(JCM)</td><td width='90%'><font color='black'>minor update to example scripts Dump_User*.pl 
</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>09/20/2005</B></td>
              <td width='50%'>Version: <B>1.85
</B></td>
  </tr></table></td>
            </tr><tr bgcolor='#eeeeee'><td width='10%'>(TS)</td><td width='90%'><font color='black'>added binmode-statements in t/10entry.t (test failed on win32) 
</font></td></tr>
<tr bgcolor='#dddddd'><td width='10%'>(TS)</td><td width='90%'><font color='black'>warning cleanup in test files (t/02export.t, t/13join.t) 
</font></td></tr>
<tr bgcolor='#eeeeee'><td width='10%'>(TS)</td><td width='90%'><font color='black'>added ars_SetLogging (changes to ARS.xs, ARS.pm, support.c, support-h.template, 
html/manual/toc.html;  new files: html/manual/ars_SetLogging.html, t/21setlogging.t) </font></td></tr>
<tr bgcolor='#dddddd'><td width='10%'>(TS)</td><td width='90%'><font color='black'>fixed pointer dereferencing error in supportrev.c:strmakHval 
</font></td></tr>
<tr bgcolor='#eeeeee'><td width='10%'>(TS)</td><td width='90%'><font color='black'>fixed supportrev.c:strcasecmp, strncasecmp; failure to differentiate between  
string and substring (e.g. "page_holder" and "page") </font></td></tr>
<tr bgcolor='#dddddd'><td width='10%'>(TS)</td><td width='90%'><font color='black'>fixed support.c:perl_ARByteList (Bug ID 1213180) 
(David Lindes {lindes at users.sourceforge.net}) </font></td></tr>
<tr bgcolor='#eeeeee'><td width='10%'>(TS)</td><td width='90%'><font color='black'>added support for DATA_TYPE_CURRENCY to perl_ARFieldLimitStruct 
</font></td></tr>
<tr bgcolor='#dddddd'><td width='10%'>(TS)</td><td width='90%'><font color='black'>added function perl_ARCurrencyDetailList 

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>09/20/2004</B></td>
              <td width='50%'>Version: <B>1.82
</B></td>
  </tr></table></td>
            </tr><tr bgcolor='#eeeeee'><td width='10%'>(QGM)</td><td width='90%'><font color='black'>AR 6.x compatibility, AR encryption compatibility 
</font></td></tr>
<tr bgcolor='#dddddd'><td width='10%'>(JMc)</td><td width='90%'><font color='black'>Makefile.PL changes, code cleanup for Windows build 
</table></td></tr></table>

<P>


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

html/changes.html  view on Meta::CPAN

</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

      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>10/24/2001</B></td>
              <td width='50%'>Version: <B>1.72
</B></td>
  </tr></table></td>
            </tr><tr bgcolor='#eeeeee'><td width='10%'>(JCM)</td><td width='90%'><font color='black'>modified Makefile.PL to handle changes to _SERVER_INFO definitions 
in 4.5.x </font></td></tr>
<tr bgcolor='#dddddd'><td width='10%'>(JCM)</td><td width='90%'><font color='black'>memory leak fixes 
</font></td></tr>
<tr bgcolor='#eeeeee'><td width='10%'>(JCM)</td><td width='90%'><font color='black'>duplicate free badness in ars_Login() fixed 
</font></td></tr>
<tr bgcolor='#dddddd'><td width='10%'>(JCM)</td><td width='90%'><font color='black'>updated doc for ars_MergeEntry 
</font></td></tr>
<tr bgcolor='#eeeeee'><td width='10%'>(JCM)</td><td width='90%'><font color='black'>added form->merge() call to OO layer 
</font></td></tr>
<tr bgcolor='#dddddd'><td width='10%'>(JCM)</td><td width='90%'><font color='black'>fixed 4.5.2 induced warning (now there's a FilterActionStruct) 

html/changes.html  view on Meta::CPAN

  <table width='100%' border='0'><tr>
	      <td width='50%'>Released: <B>7/4/2000</B></td>
              <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

	<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>01/04/99</B></td>
              <td width='50%'>Version: <B>1.63
</B></td>
  </tr></table></td>
            </tr><tr bgcolor='#eeeeee'><td width='10%'>(JCM)</td><td width='90%'><font color='black'>fixed some missing conditional compilation #if's in code 
</font></td></tr>
<tr bgcolor='#dddddd'><td width='10%'>(JCM)</td><td width='90%'><font color='black'>changes "require Config" to "use Config" in Makefile.PL 
at the request of activestate </font></td></tr>
<tr bgcolor='#eeeeee'><td width='10%'>(JCM)</td><td width='90%'><font color='black'>added MANIFEST file to distribution 
</table></td></tr></table>

<P>


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

html/changes.html  view on Meta::CPAN

<tr bgcolor='#dddddd'><td width='10%'>(JCM)</td><td width='90%'><font color='red'>ars4.0 integration (see RELNOTES for important compatibility 
information) </font></td></tr>
<tr bgcolor='#eeeeee'><td width='10%'>(JCM)</td><td width='90%'><font color='red'>perl_qualifier() now takes a control struct  
</font></td></tr>
<tr bgcolor='#dddddd'><td width='10%'>(JCM)</td><td width='90%'><font color='black'>if compiled against API &gt;= 4.0 then __ars_init __ars_term 
no longer do anything (but are still there). the functionality of each of these have been rolled into ars_Login and ars_Logoff respectively. </font></td></tr>
<tr bgcolor='#eeeeee'><td width='10%'>(JCM)</td><td width='90%'><font color='black'>added ars_APIVersion()  
</font></td></tr>
<tr bgcolor='#dddddd'><td width='10%'>(JCM)</td><td width='90%'><font color='black'>GetActiveLink, when compiled against 4.0 returns ARMessageStruct 
</font></td></tr>
<tr bgcolor='#eeeeee'><td width='10%'>(JCM)</td><td width='90%'><font color='black'>applied some changes contributed by Murray Nesbitt  
{murray at ActiveState.com} so that it will compile against the active state version of perl more easily.  </font></td></tr>
<tr bgcolor='#dddddd'><td width='10%'>(JCM)</td><td width='90%'><font color='black'>changed licensing to match that of perl itself. 
</table></td></tr></table>

<P>


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

html/changes.html  view on Meta::CPAN

            </tr><tr bgcolor='#eeeeee'><td width='10%'>(JCM)</td><td width='90%'><font color='black'>new utility: example/AddUsersToGroup.pl - bulk add a bunch 
of users to a specified group  </font></td></tr>
<tr bgcolor='#dddddd'><td width='10%'>(JCM)</td><td width='90%'><font color='black'>new utility: example/DelUsersFromGroup.pl - bulk delete a bunch 
of users from a specified group  </font></td></tr>
<tr bgcolor='#eeeeee'><td width='10%'>(JCM)</td><td width='90%'><font color='black'>fixed uninitialized variable warnings 
</font></td></tr>
<tr bgcolor='#dddddd'><td width='10%'>(JCM)</td><td width='90%'><font color='black'>fixed various problems with join schema entry-id handling 
</font></td></tr>
<tr bgcolor='#eeeeee'><td width='10%'>(JCM)</td><td width='90%'><font color='black'>fixed bug in indexList returned by ars_GetSchema() 
</font></td></tr>
<tr bgcolor='#dddddd'><td width='10%'>(JCM)</td><td width='90%'><font color='red'>updated all Get&lt;object&gt; functions so that changeDiary 
is fully decoded. </font></td></tr>
<tr bgcolor='#eeeeee'><td width='10%'>(JCM)</td><td width='90%'><font color='red'>changed return value of ars_DeleteEntry() so that 
ars_DeleteEntry() || die() will work as expected. </font></td></tr>
<tr bgcolor='#dddddd'><td width='10%'>(JCM)</td><td width='90%'><font color='black'>fixed problem in example/Show_ALink.pl 
</font></td></tr>
<tr bgcolor='#eeeeee'><td width='10%'>(JCM)</td><td width='90%'><font color='black'>added/updated helper func: ars_decodeStatusHistory() 
</font></td></tr>
<tr bgcolor='#dddddd'><td width='10%'>(JCM)</td><td width='90%'><font color='black'>added example/ars_decodeStatusHistory.pl 
</font></td></tr>
<tr bgcolor='#eeeeee'><td width='10%'>(JCM)</td><td width='90%'><font color='black'>fixed ars_GetSchema typo/bug w/regards to adminGroupList 
</font></td></tr>
<tr bgcolor='#dddddd'><td width='10%'>(JCM)</td><td width='90%'><font color='black'>fixed GetField.pl example so that it decodes everything 

html/changes.html  view on Meta::CPAN

	    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%'
      BORDER='0' 
      BGCOLOR='black'>

html/copying.html  view on Meta::CPAN

675 Mass Ave, Cambridge, MA 02139, USA<p>

Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.<p>

<hr>

<center><h2 align=center>Preamble</h2></center>

The licenses for most software are designed to take away your
freedom to share and change it.  By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users.  This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it.  (Some other Free Software Foundation software is covered by
the GNU Library General Public License instead.)  You can apply it to
your programs, too.<p>

When we speak of free software, we are referring to freedom, not
price.  Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.<p>

To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.<p>

For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have.  You must make sure that they, too, receive or can get the

html/copying.html  view on Meta::CPAN

<dt>1. 
<dd>You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.<p>

You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.<p>

<dt>2. 
<dd>You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:<p>
<dl compact>
<dt>a) 
<dd>You must cause the modified files to carry prominent notices
    stating that you changed the files and the date of any change.<p>

<dt>b) 
<dd>You must cause any work that you distribute or publish, that in
    whole or in part contains or is derived from the Program or any
    part thereof, to be licensed as a whole at no charge to all third
    parties under the terms of this License.<p>

<dt>c) 
<dd>If the modified program normally reads commands interactively
    when run, you must cause it, when started running for such

html/copying.html  view on Meta::CPAN


<dt>3. 
<dd>You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:<p>

<dl compact>
<dt>a) 
<dd>Accompany it with the complete corresponding machine-readable
    source code, which must be distributed under the terms of Sections
    1 and 2 above on a medium customarily used for software interchange; or,<p>

<dt>b) 
<dd>Accompany it with a written offer, valid for at least three
    years, to give any third party, for a charge no more than your
    cost of physically performing source distribution, a complete
    machine-readable copy of the corresponding source code, to be
    distributed under the terms of Sections 1 and 2 above on a medium
    customarily used for software interchange; or,<p>

<dt>c) 
<dd>Accompany it with the information you received as to the offer
    to distribute corresponding source code.  (This alternative is
    allowed only for noncommercial distribution and only if you
    received the program in object code or executable form with such
    an offer, in accord with Subsection b above.)<p>
</dl>

The source code for a work means the preferred form of the work for

html/copying.html  view on Meta::CPAN

YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.<p>
</dl>
<center><p align=center>END OF TERMS AND CONDITIONS</p></center>
<hr>
<center><h2 align=center>Appendix: How to Apply These Terms to Your New Programs</h2></center>

If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.<p>

To do so, attach the following notices to the program.  It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.<p>

<dl>
<dd>&lt;one line to give the program's name and a brief idea of what it does.><br>
    Copyright (C) 19yy  &lt;name of author><p>

html/index.html  view on Meta::CPAN

terms of Perl itself</a>.
<p> We hope that other ARS fans find the kit useful. </p>

<h2> Version </h2>

The current release is version 1.91 and has support for the AR 5.0
through 7.1
API.
<p> </p>

<h2> <a href="changes.html">Release Notes</a>
</h2>

<h2> Support OS's </h2>

The perl extension has been tested on the following OS's:
<ul>

  <li> Solaris 2.x </li>

  <li> SunOS 4.x </li>

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

      </PRE>

<I>ARS::AR_DAY 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>
</BODY>
</HTML>

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

      </PRE>

<I>ARS::AR_HOUR 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>
</BODY>
</HTML>

html/manual/OO/connection.html  view on Meta::CPAN

<PRE>
   $c->print();
</PRE>

	This method prints out the connection object in a readable format.
	<P>

<DT><A NAME="availableSchemas"><B>availableSchemas()</B></A><DD>

<PRE>
   @s = $c->availableSchemas(-changedsince =&gt; scalar timestamp,
                             -schematype   =&gt; scalar,
                             -name         =&gt; scalar string);
</PRE>

    This method returns a list of available schemas that the 
    current user connection has access to. It is more or less the same as
    the ars_GetListSchema() call. <P>
      
      The <code>schematype</code> parameter is one of:

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

    <p>
      Example:
    </p>
    <pre>
 $v = ars_APIVersion();<br />        print "This installation of ARSperl was compiled against ARS API version $v\n";<br /> 
</pre><i>ars_APIVersion was introduced in version 1.62 of ARSperl</i>
    <p>
      <a href="toc.html">Back to Table of Contents</a>
    </p>
    <address>
      Last changes to this page 24 July 2007 by michiel.beijen@mansolutions.nl<br />
      © J.C.Murphy, J.W.Murphy 1995-2007 arsperl@arsperl.org
    </address>
  </body>
</html>

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


<P>
<I>ars_BeginBulkEntryTransaction was introduced in version 1.90 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 22th February 2007 by tstapff@users.sourceforge.net<BR>
&#169; J.C.Murphy, J.W.Murphy, T.Stapff 2007 arsperl@arsperl.org
</address>
</BODY>
</HTML>

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

          a new name. </I></BLOCKQUOTE>

      <PRE>
      ($al = ars_GetActiveLink($c, "AL-foobar")) ||
	    die $ars_errstr;
      $al->{name} = "Copy of ".$al->{name};
      ars_CreateActiveLink($c, $al) || 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.50 of ARSperl</I>
<P>

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



( run in 0.937 second using v1.01-cache-2.11-cpan-5dc5da66d9d )