view release on metacpan or search on metacpan
if( ! cacheFields ){
goto create_entry_end;
}
fieldList.numItems = c;
AMALLOCNN(fieldList.fieldValueList,c,ARFieldValueStruct);
getFieldIds.numItems = 0;
getFieldIds.internalIdList = NULL;
/* try to get data type from field cache, collect fieldIds which are not cached */
for (i=0; i<c; ++i) {
ARInternalId fieldId;
a = i*2+2;
fieldId = fieldList.fieldValueList[i].fieldId = SvIV(ST(a));
dataType = fieldcache_get_data_type( cacheFields, fieldId );
if (dataType <= AR_DATA_TYPE_MAX_TYPE) {
/* printf( "%s [%d] found in cache\n", schema, fieldId ); fflush(stdout); */ /* _DEBUG_ */
if (sv_to_ARValue(ctrl, ST(a+1), dataType, &fieldList.fieldValueList[i].value) < 0) {
goto create_entry_end;
}
}else{
if( getFieldIds.numItems == 0 ){
AMALLOCNN(getFieldIds.internalIdList,c,ARInternalId);
}
/* printf( "%s [%d] collect for loading\n", schema, fieldId ); fflush(stdout); */ /* _DEBUG_ */
/* load missing fields into cache */
if( getFieldIds.numItems > 0 ){
/* printf( "--- load missing fields ---\n" ); fflush(stdout); */ /* _DEBUG_ */
/* if( fieldcache_load_schema(ctrl,schema,&getFieldIds,NULL) != AR_RETURN_OK ){ */
if( fieldcache_load_schema(ctrl,schema,&getFieldIds,NULL) > AR_RETURN_WARNING ){
goto create_entry_end;
}
}
/* now get data type from the freshly cached fields */
i = 0;
for (j=0; j<getFieldIds.numItems; ++j) {
ARInternalId fieldId = getFieldIds.internalIdList[j];
while(fieldId != fieldList.fieldValueList[i].fieldId) ++i;
a = i*2+2;
dataType = fieldcache_get_data_type( cacheFields, fieldId );
if (dataType <= AR_DATA_TYPE_MAX_TYPE) {
/* printf( "%s [%d] freshly loaded\n", schema, fieldId ); fflush(stdout); */ /* _DEBUG_ */
if (sv_to_ARValue(ctrl, ST(a+1), dataType, &fieldList.fieldValueList[i].value) < 0) {
goto create_entry_end;
}
}else{
char errTxt[256];
sprintf( errTxt, "Failed to fetch field %d from hash", fieldId );
ARError_add(AR_RETURN_ERROR, AP_ERR_FIELD_TYPE);
ARError_add(AR_RETURN_ERROR, AP_ERR_CONTINUE, errTxt );
hv_undef( h_dummy );
}else{
clist[count++] = SvIV(st3);
}
}
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);
ARError_add( AR_RETURN_ERROR, AP_ERR_PREREVFAIL);
}
if( rv == 0 && !ARError(ret, status)) {
unsigned int i;
for(i = 0 ; i < conList.numItems ; i++) {
HV *conInfo = newHV();
ARContainerOwnerObjList cOwnerObjList;
hv_store(conInfo, "containerType", strlen("containerType") ,
newSVpv(ContainerTypeMap[conList.conInfoList[i].type].name, 0), 0);
hv_store(conInfo, "containerName", strlen("containerName") ,
newSVpv(conList.conInfoList[i].name, 0), 0);
cOwnerObjList = conList.conInfoList[i].ownerList;
hv_store(conInfo, "ownerObjList", strlen("ownerObjList") ,
perl_AROwnerObjList(ctrl, &cOwnerObjList), 0);
XPUSHs(sv_2mortal(newRV_noinc((SV *)conInfo)));
}
}
/* Don't try to FreeAR this, because clist[] is a stack variable */
/* FreeARContainerTypeList(&containerTypes, FALSE); */
{
ARStatusList status;
int ret;
ARReferenceTypeList refTypes;
ARPermissionList assignedGroupList;
ARPermissionList groupList;
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;
refTypes.refType = tlist;
ret = ARGetContainer(control, name,
&refTypes,
#if AR_CURRENT_API_VERSION >= 17
&assignedGroupList,
#endif
&groupList, &adminGroupList,
&ownerObjList,
&label, &description,
&type, &references, &helpText,
owner, ×tamp, 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();
hv_store(RETVAL, "objPropList", strlen("objPropList") ,
perl_ARPropList(control, &objPropList), 0);
#if AR_CURRENT_API_VERSION >= 17
hv_store(RETVAL, "assignedGroupList", strlen("assignedGroupList") ,
perl_ARPermissionList(control, &assignedGroupList, PERMTYPE_SCHEMA), 0);
#endif
hv_store(RETVAL, "groupList", strlen("groupList") ,
perl_ARPermissionList(control, &groupList, PERMTYPE_SCHEMA), 0);
hv_store(RETVAL, "adminList", strlen("adminList") ,
perl_ARList(control, (ARList *)&adminGroupList,
(ARS_fn)perl_ARInternalId,
sizeof(ARInternalId)),0);
hv_store(RETVAL, "ownerObjList", strlen("ownerObjList") ,
perl_AROwnerObjList(control, &ownerObjList), 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, "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,
for (i=0; i<c; i++) {
ARInternalId fieldId;
a = i*2+offset;
fieldId = fieldList.fieldValueList[i].fieldId = SvIV(ST(a));
if (! SvOK(ST(a+1))) {
/* pass a NULL */
fieldList.fieldValueList[i].value.dataType = AR_DATA_TYPE_NULL;
}else{
/* determine data type and pass value */
dataType = fieldcache_get_data_type( cacheFields, fieldId );
if (dataType <= AR_DATA_TYPE_MAX_TYPE) {
if (sv_to_ARValue(ctrl, ST(a+1), dataType, &fieldList.fieldValueList[i].value) < 0) {
goto set_entry_end;
}
}else{
if( getFieldIds.numItems == 0 ){
AMALLOCNN(getFieldIds.internalIdList,c,ARInternalId);
}
/* printf( "%s [%d] collect for loading\n", schema, fieldId ); fflush(stdout); */ /* _DEBUG_ */
getFieldIds.internalIdList[getFieldIds.numItems] = fieldId;
/* load missing fields into cache */
if( getFieldIds.numItems > 0 ){
/* printf( "--- load missing fields ---\n" ); fflush(stdout); */ /* _DEBUG_ */
/* if( fieldcache_load_schema(ctrl,schema,&getFieldIds,NULL) != AR_RETURN_OK ){ */
if( fieldcache_load_schema(ctrl,schema,&getFieldIds,NULL) > AR_RETURN_WARNING ){
goto set_entry_end;
}
}
/* now get data type from the freshly cached fields */
i = 0;
for (j=0; j<getFieldIds.numItems; ++j) {
ARInternalId fieldId = getFieldIds.internalIdList[j];
while(fieldId != fieldList.fieldValueList[i].fieldId) ++i;
a = i*2+offset;
dataType = fieldcache_get_data_type( cacheFields, fieldId );
if (dataType <= AR_DATA_TYPE_MAX_TYPE) {
/* printf( "%s [%d] freshly loaded\n", schema, fieldId ); fflush(stdout); */ /* _DEBUG_ */
if (sv_to_ARValue(ctrl, ST(a+1), dataType, &fieldList.fieldValueList[i].value) < 0) {
goto set_entry_end;
}
}else{
char errTxt[256];
sprintf( errTxt, "Failed to fetch field %d from hash", fieldId );
ARError_add(AR_RETURN_ERROR, AP_ERR_FIELD_TYPE);
ARError_add(AR_RETURN_ERROR, AP_ERR_CONTINUE, errTxt );
et = caseLookUpTypeNumber((TypeMapStruct *)
StructItemTypeMap,
SvPV(ST(a), PL_na)
);
if(et == TYPEMAP_LAST) {
(void) ARError_add(AR_RETURN_ERROR, AP_ERR_BAD_EXP);
(void) ARError_add(AR_RETURN_ERROR, AP_ERR_CONTINUE,
SvPV(ST(a), PL_na) );
ok = 0;
} else {
structItems.structItemList[i].type = et;
/* printf( "structItems.structItemList[i].type <%d>\n", structItems.structItemList[i].type ); */ /* _DEBUG_ */
strncpy(structItems.structItemList[i].name,
SvPV(ST(a+1), PL_na),
sizeof(ARNameType) );
structItems.structItemList[i].name[sizeof(ARNameType)-1] = '\0';
/* printf( "structItems.structItemList[i].name <%s>\n", structItems.structItemList[i].name ); */ /* _DEBUG_ */
}
}
}
#if AR_EXPORT_VERSION >= 8L
workflowLockStruct.lockType = 0;
et = caseLookUpTypeNumber((TypeMapStruct *)
StructItemTypeMap,
SvPV(ST(a), PL_na)
);
if(et == TYPEMAP_LAST) {
(void) ARError_add(AR_RETURN_ERROR, AP_ERR_BAD_IMP);
(void) ARError_add(AR_RETURN_ERROR, AP_ERR_CONTINUE,
SvPV(ST(a), PL_na) );
ok = 0;
} else {
structItems->structItemList[i].type = et;
strncpy(structItems->structItemList[i].name,
SvPV(ST(a+1), PL_na),
sizeof(ARNameType) );
structItems->structItemList[i].name[sizeof(ARNameType)-1] = '\0';
}
}
}
}
if(ok) {
sv_2mortal( (SV*) RETVAL );
ret = ARGetListGroup(ctrl, userName,
#if AR_EXPORT_VERSION >= 6
password,
#endif
&groupList, &status);
#ifdef PROFILE
((ars_ctrl *)ctrl)->queries++;
#endif
if(!ARError( ret, status)) {
AV *gidList = newAV(), *gtypeList = newAV(),
*gnameListList = newAV(), *gnameList;
for(i = 0; i < groupList.numItems; i++) {
av_push(gidList, newSViv(groupList.groupList[i].groupId));
av_push(gtypeList, newSViv(groupList.groupList[i].groupType));
gnameList = newAV();
for(v = 0; v < groupList.groupList[i].groupName.numItems ; v++) {
av_push(gnameList, newSVpv(groupList.groupList[i].groupName.nameList[v], 0));
}
av_push(gnameListList, newRV_noinc((SV *)gnameList));
}
hv_store(RETVAL, "groupId", strlen("groupId") , newRV_noinc((SV *)gidList), 0);
hv_store(RETVAL, "groupType", strlen("groupType") , newRV_noinc((SV *)gtypeList), 0);
hv_store(RETVAL, "groupName", strlen("groupName") , newRV_noinc((SV *)gnameListList), 0);
FreeARGroupInfoList(&groupList, FALSE);
}
}
OUTPUT:
RETVAL
#else
licenseType,
&licList, &status);
if(!ARError( ret, status)) {
unsigned int i;
for(i = 0; i < licList.numItems; i++) {
HV *licInfo = newHV();
hv_store(licInfo, "licKey", 6, newSVpv(licList.licenseInfoList[i].licKey,0), 0);
hv_store(licInfo, "licType", 8, newSVpv(licList.licenseInfoList[i].licType,0), 0);
hv_store(licInfo, "licSubtype", 10, newSVpv(licList.licenseInfoList[i].licSubtype,0), 0);
hv_store(licInfo, "issuedDate", 10,
perl_ARLicenseDateStruct(ctrl, &(licList.licenseInfoList[i].issuedDate)), 0);
hv_store(licInfo, "expireDate", 10,
perl_ARLicenseDateStruct(ctrl, &(licList.licenseInfoList[i].expireDate)), 0);
hv_store(licInfo, "hostId", 6, newSVpv(licList.licenseInfoList[i].hostId,0), 0);
hv_store(licInfo, "numLicenses", 11, newSViv(licList.licenseInfoList[i].numLicenses), 0);
hv_store(licInfo, "tokenList", 9, newSVpv(licList.licenseInfoList[i].tokenList,0), 0);
hv_store(licInfo, "comment", 7, newSVpv(licList.licenseInfoList[i].comment,0), 0);
XPUSHs(sv_2mortal(newRV_noinc((SV *)licInfo)));
serverInfo.serverInfoList[j].value.dataType = infoType;
switch(infoType) {
case AR_DATA_TYPE_CHAR:
serverInfo.serverInfoList[j].value.u.charVal = strdup(SvPV(ST(i+1), PL_na));
break;
case AR_DATA_TYPE_INTEGER:
serverInfo.serverInfoList[j].value.u.intVal = SvIV(ST(i+1));
break;
default:
sprintf( buf, "(%d) type = %d", serverInfo.serverInfoList[j].operation, serverInfo.serverInfoList[j].value.dataType );
(void) ARError_add(AR_RETURN_ERROR, AP_ERR_INV_ARGS,
buf);
FreeARServerInfoList(&serverInfo, FALSE);
XPUSHs(sv_2mortal(newSViv(0))); /* ERR */
goto SetServerInfo_fail;
}
}
ret = ARSetServerInfo(ctrl, &serverInfo, &status);
FreeARServerInfoList(&serverInfo, FALSE);
if(ARError(ret, status)) {
ret = ARGetServerInfo(ctrl, &requestList, &serverInfo, &status);
#ifdef PROFILE
((ars_ctrl *)ctrl)->queries++;
#endif
if(!ARError( ret, status)) {
for(ui = 0 ; ui < serverInfo.numItems ; ui++) {
/* provided we have a mapping for the operation code,
* push out it's translation. else push out the code itself
*/
if(serverInfo.serverInfoList[ui].operation <= AR_MAX_SERVER_INFO_USED) {
/* printf( "%d %s: data type = %d\n", serverInfo.serverInfoList[ui].operation, ServerInfoMap[serverInfo.serverInfoList[ui].operation].name, serverInfo.serverInfoList[ui].value.dataType ); */
XPUSHs(sv_2mortal(newSVpv(ServerInfoMap[serverInfo.serverInfoList[ui].operation].name, 0)));
} else {
XPUSHs(sv_2mortal(newSViv(serverInfo.serverInfoList[ui].operation)));
}
XPUSHs(sv_2mortal(perl_ARValueStruct(ctrl,
&(serverInfo.serverInfoList[ui].value))));
}
}
FreeARServerInfoList(&serverInfo, FALSE);
}
Zero(&status, 1,ARStatusList);
if( SvROK(menuDefRef) && SvTYPE(SvRV(menuDefRef)) == SVt_PVHV ){
menuDef = (HV*) SvRV(menuDefRef);
}else{
croak("usage: ars_CreateCharMenu(...)");
}
rv += strcpyHVal( menuDef, "name", name, AR_MAX_NAME_SIZE );
/* rv += uintcpyHVal( menuDef, "refreshCode", &type ); */
rv += strmakHVal( menuDef, "refreshCode", &refreshCodeStr );
refreshCode = revTypeName( (TypeMapStruct*)CharMenuRefreshCodeTypeMap, refreshCodeStr );
if( refreshCode == TYPEMAP_LAST ){
ARError_add(AR_RETURN_ERROR, AP_ERR_GENERAL,
"ars_CreateCharMenu: refreshCode key invalid. key follows:");
ARError_add(AR_RETURN_WARNING, AP_ERR_CONTINUE,
refreshCodeStr ? refreshCodeStr : "[key null]" );
}
if( refreshCodeStr != NULL ){ AP_FREE(refreshCodeStr); }
CODE:
{
#if AR_EXPORT_VERSION >= 6L
int ret = 0, rv = 0;
ARNameType name;
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;
Zero(&status, 1,ARStatusList);
if( SvROK(containerDefRef) && SvTYPE(SvRV(containerDefRef)) == SVt_PVHV ){
containerDef = (HV*) SvRV(containerDefRef);
}else{
croak("usage: ars_CreateContainer(...)");
}
rv += strcpyHVal( containerDef, "name", name, AR_MAX_NAME_SIZE );
/* rv += uintcpyHVal( containerDef, "type", &type ); */
rv += strmakHVal( containerDef, "type", &typeStr );
type = revTypeName( (TypeMapStruct*)ContainerTypeMap, typeStr );
if( type == TYPEMAP_LAST ){
ARError_add(AR_RETURN_ERROR, AP_ERR_GENERAL,
"ars_CreateContainer: type key invalid. key follows:");
ARError_add(AR_RETURN_WARNING, AP_ERR_CONTINUE,
typeStr ? typeStr : "[key null]" );
}
if( typeStr != NULL ){ AP_FREE(typeStr); }
groupList.numItems = 0;
groupList.permissionList = NULL;
pSvTemp = hv_fetch( containerDef, "groupList", strlen("groupList") , 0 );
if( pSvTemp && *pSvTemp && SvTYPE(*pSvTemp) != SVt_NULL ){
rv += rev_ARPermissionList( ctrl, containerDef, "groupList", &groupList );
}
admingrpList.numItems = 0;
admingrpList.internalIdList = NULL;
}
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 );
{
#if AR_EXPORT_VERSION >= 6L
int ret = 0, rv = 0;
ARNameType newName;
char *newNamePtr = NULL;
ARPermissionList *groupList = NULL;
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;
containerDef = (HV*) SvRV(containerDefRef);
}else{
croak("usage: ars_SetContainer(...)");
}
if( hv_exists(containerDef,"name",4) ){
rv += strcpyHVal( containerDef, "name", newName, AR_MAX_NAME_SIZE );
newNamePtr = newName;
}
if( hv_exists(containerDef,"type",4) ){
/* rv += uintcpyHVal( containerDef, "type", &type ); */
rv += strmakHVal( containerDef, "type", &typeStr );
type = revTypeName( (TypeMapStruct*)ContainerTypeMap, typeStr );
if( type == TYPEMAP_LAST ){
ARError_add(AR_RETURN_ERROR, AP_ERR_GENERAL,
"ars_CreateContainer: type key invalid. key follows:");
ARError_add(AR_RETURN_WARNING, AP_ERR_CONTINUE,
typeStr ? typeStr : "[key null]" );
}
if( typeStr != NULL ){ AP_FREE(typeStr); }
typePtr = &type;
}
pSvTemp = hv_fetch( containerDef, "groupList", strlen("groupList") , 0 );
if( pSvTemp && *pSvTemp && SvTYPE(*pSvTemp) != SVt_NULL ){
groupList = (ARPermissionList*) MALLOCNN( sizeof(ARPermissionList) );
rv += rev_ARPermissionList( ctrl, containerDef, "groupList", groupList );
}
pSvTemp = hv_fetch( containerDef, "adminList", strlen("adminList") , 0 );
if( pSvTemp && *pSvTemp && SvTYPE(*pSvTemp) != SVt_NULL ){
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 );
Zero(owner, 1, ARAccessNameType);
#if AR_EXPORT_VERSION >= 3
Zero(&elseList, 1,ARActiveLinkActionList);
#else
Zero(&displayList, 1,ARDisplayList);
#endif
#if AR_EXPORT_VERSION >= 5
Zero(&objPropList, 1, ARPropList);
Zero(&schemaList, 1, ARWorkflowConnectStruct);
Zero(&schemaNameList, 1, ARNameList);
schemaList.type = AR_WORKFLOW_CONN_SCHEMA_LIST;
schemaList.u.schemaList = &schemaNameList;
#endif
if(SvTYPE((SV *)SvRV(alDefRef)) != SVt_PVHV) {
ARError_add( AR_RETURN_ERROR, AP_ERR_EXPECT_PVHV);
} else {
HV *alDef = (HV *)SvRV(alDefRef);
SV **qhv = hv_fetch(alDef, "query", strlen("query") , 0);
/* dereference the qual pointer */
* data structure. if any are missing, we fail.
*/
rv = 0;
if( hv_exists(objDef,"name",4) ){
rv += strcpyHVal( objDef, "name", newName, AR_MAX_NAME_SIZE );
newNamePtr = newName;
}
if( hv_exists(objDef,"schemaList",10) ){
schemaList = (ARWorkflowConnectStruct*) MALLOCNN(sizeof(ARWorkflowConnectStruct));
schemaList->type = AR_WORKFLOW_CONN_SCHEMA_LIST;
schemaList->u.schemaList = (ARNameList*) MALLOCNN( sizeof(ARNameList) );
rv += rev_ARNameList( ctrl, objDef, "schemaList", schemaList->u.schemaList );
}
if( hv_exists(objDef,"order",5) ){
order = (unsigned int*) MALLOCNN(sizeof(unsigned int));
rv += uintcpyHVal( objDef, "order", order );
}
if( hv_exists(objDef,"groupList",9) ){
groupList = (ARInternalIdList*) MALLOCNN(sizeof(ARInternalIdList));
rv += rev_ARInternalIdList(ctrl, objDef, "groupList", groupList);
Zero(name, 1, ARNameType);
Zero(&actionList, 1,ARFilterActionList);
Zero(&elseList, 1,ARFilterActionList);
Zero(owner, 1, ARAccessNameType);
Zero(&objPropList, 1, ARPropList);
Zero(&schemaList, 1, ARWorkflowConnectStruct);
Zero(&schemaNameList, 1, ARNameList);
#if AR_CURRENT_API_VERSION >= 13
Zero(errorFilterName, 1, ARNameType);
#endif
schemaList.type = AR_WORKFLOW_CONN_SCHEMA_LIST;
schemaList.u.schemaList = &schemaNameList;
if(SvTYPE((SV *)SvRV(objDefRef)) != SVt_PVHV) {
ARError_add( AR_RETURN_ERROR, AP_ERR_EXPECT_PVHV);
} else {
HV *objDef = (HV *)SvRV(objDefRef);
SV **qhv = hv_fetch(objDef, "query", strlen("query") , 0);
/* dereference the qual pointer */
* data structure. if any are missing, we fail.
*/
rv = 0;
if( hv_exists(objDef,"name",4) ){
rv += strcpyHVal( objDef, "name", newName, AR_MAX_NAME_SIZE );
newNamePtr = newName;
}
if( hv_exists(objDef,"schemaList",10) ){
schemaList = (ARWorkflowConnectStruct*) MALLOCNN(sizeof(ARWorkflowConnectStruct));
schemaList->type = AR_WORKFLOW_CONN_SCHEMA_LIST;
schemaList->u.schemaList = (ARNameList*) MALLOCNN( sizeof(ARNameList) );
rv += rev_ARNameList( ctrl, objDef, "schemaList", schemaList->u.schemaList );
}
if( hv_exists(objDef,"order",5) ){
order = (unsigned int*) MALLOCNN(sizeof(unsigned int));
rv += uintcpyHVal( objDef, "order", order );
}
if( hv_exists(objDef,"opSet",5) ){
opSet = (unsigned int*) MALLOCNN(sizeof(unsigned int));
rv += uintcpyHVal( objDef, "opSet", opSet);
(void) ARError_reset();
Zero(&status, 1,ARStatusList);
Zero(name, 1, ARNameType);
Zero(&actionList, 1,ARFilterActionList);
Zero(&elseList, 1,ARFilterActionList);
Zero(owner, 1, ARAccessNameType);
Zero(&objPropList, 1, ARPropList);
Zero(&schemaList, 1, ARWorkflowConnectStruct);
Zero(&schemaNameList, 1, ARNameList);
Zero(&escalationTm, 1, AREscalationTmStruct);
schemaList.type = AR_WORKFLOW_CONN_SCHEMA_LIST;
schemaList.u.schemaList = &schemaNameList;
if(SvTYPE((SV *)SvRV(objDefRef)) != SVt_PVHV) {
ARError_add( AR_RETURN_ERROR, AP_ERR_EXPECT_PVHV);
} else {
HV *objDef = (HV *)SvRV(objDefRef);
SV **qhv = hv_fetch(objDef, "query", strlen("query") , 0);
/* dereference the qual pointer */
* data structure. if any are missing, we fail.
*/
rv = 0;
if( hv_exists(objDef,"name",4) ){
rv += strcpyHVal( objDef, "name", newName, AR_MAX_NAME_SIZE );
newNamePtr = newName;
}
if( hv_exists(objDef,"schemaList",10) ){
schemaList = (ARWorkflowConnectStruct*) MALLOCNN(sizeof(ARWorkflowConnectStruct));
schemaList->type = AR_WORKFLOW_CONN_SCHEMA_LIST;
schemaList->u.schemaList = (ARNameList*) MALLOCNN( sizeof(ARNameList) );
rv += rev_ARNameList( ctrl, objDef, "schemaList", schemaList->u.schemaList );
}
if( hv_exists(objDef,"enable",6) ){
enable = (unsigned int*) MALLOCNN(sizeof(unsigned int));
rv += uintcpyHVal( objDef, "enable", enable);
}
if( hv_exists(objDef,"TmInterval",10) ){
escalationTm = (AREscalationTmStruct*) MALLOCNN(sizeof(AREscalationTmStruct));
ARS/OOform.pm view on Meta::CPAN
my(%t, %enums);
foreach (keys %f) {
print "caching field: $_\n" if $self->{'connection'}->{'.debug'};
my $fv = ARS::ars_GetField($self->{'connection'}->{'ctrl'},
$self->{'form'},
$f{$_});
$connection->tryCatch();
$t{$_} = $fv->{'dataType'};
print "\tdatatype: $t{$_}\n" if $self->{'connection'}->{'.debug'};
if ($fv->{'dataType'} eq "enum") {
if (ref($fv->{'limit'}->{'enumLimits'}) eq "ARRAY") {
my $i = 0;
$enums{$_} = { map { $i++, $_ } @{$fv->{'limit'}->{'enumLimits'}} };
}
elsif (exists $fv->{'limit'}->{'enumLimits'}->{'regularList'}) {
my $i = 0;
$enums{$_} = { map { $i++, $_ } @{$fv->{'limit'}->{'enumLimits'}->{'regularList'}} };
} else {
$enums{$_} = { map { $_->{itemNumber}, $_->{itemName} } @{$fv->{'limit'}->{'enumLimits'}->{customList}} };
}
}
}
$self->{'fieldtypes'} = \%t;
$self->{'fieldEnumValues'} = \%enums;
return $b;
}
sub DESTROY {
}
# getEnumValues(-field => "fieldname")
ARS/OOform.pm view on Meta::CPAN
sub getFieldType {
my $this = shift;
my ($name, $id) = ARS::rearrange([FIELD,ID], @_);
if(!defined($name) && !defined($id)) {
$this->{'connection'}->pushMessage(&ARS::AR_RETURN_ERROR,
81000,
"usage: form->getFieldType(-field => name, -id => id)\none of the parameters must be specified.");
}
if(defined($name) && !defined($this->{'fieldtypes'}->{$name})) {
$this->{'connection'}->pushMessage(&ARS::AR_RETURN_ERROR,
81001,
"field '$name' not in view: ".$this->{'vui'}."\n"
);
}
#print "getFieldType($name, $id)\n" if $this->{'connection'}->{'.debug'};
return $this->{'fieldtypes'}->{$name} if defined($name);
# they didnt give us a name, but instead gave us an id. look up the
# name and return the type.
if(defined($id)) {
my $n = $this->getFieldName(-id => $id);
return $this->{'fieldtypes'}->{$n};
}
$this->{'connection'}->pushMessage(&ARS::AR_RETURN_ERROR,
81003,
"couldn't determine dataType for field.");
}
# delete(-entry => id)
sub delete {
ARS/OOform.pm view on Meta::CPAN
}
foreach (@d) {
ARS::ars_DeleteEntry($this->{'connection'}->{'ctrl'},
$this->{'form'},
$_);
$this->{'connection'}->tryCatch();
}
}
# merge(-type => mergeType, -values => { field1 => value1, ... })
sub merge {
my ($this) = shift;
my ($type, $vals) =
ARS::rearrange([TYPE,[VALUE,VALUES]],@_);
$this->{'connection'}->pushMessage(&ARS::AR_RETURN_ERROR,
81000,
"usage: form->merge(-type => mergeType, -values => { field1 => value1, ... })\ntype and values parameters are required.")
unless(defined($type) && defined($vals));
$this->{'connection'}->pushMessage(&ARS::AR_RETURN_ERROR,
81000,
"usage: form->merge(-type => mergeType, -values => { field1 => value1, ... })\nvalues parameter must be HASH ref.")
unless ref($vals) eq "HASH";
my (%realmap);
# as we work thru each value, we need to perform translations for
# enum fields.
foreach (keys %{$vals}) {
my ($rv) = $this->value2internal(-field => $_,
-value => $vals->{$_});
#print "[form->merge] realval for $_ = $rv\n";
$realmap{$this->getFieldID($_)} = $rv;
}
print "merge/type=$type\n" if $this->{'connection'}->{'.debug'};
my ($rv) = ARS::ars_MergeEntry($this->{'connection'}->{'ctrl'},
$this->{'form'},
$type,
%realmap);
$this->{'connection'}->tryCatch();
# if ($rv is "") and there are no FATAL or ERRORs and
# an entry id was in our vals realmap hash, then this was
# a successful "OVERWRITE" or "MERGE" operation. lets return
# the entry-id. if $rv is no "", then whatever operation this
# was - it was successful. if it's "" and we had no entry-id
ARS/OOform.pm view on Meta::CPAN
my ($f, $v) = ARS::rearrange([FIELD,VALUE], @_);
$this->{'connection'}->pushMessage(&ARS::AR_RETURN_ERROR,
81000,
"usage: form->value2internal(-field => name, -value => value)\nfield parameter is required.")
unless (defined($f));
return $v unless defined $v;
my ($t) = $this->getFieldType($f);
print "value2internal($f, $v) type=$t\n"
if $this->{'connection'}->{'.debug'};
# translate an text value into an enumeration number if this
# field is an enumeration field and we havent been passed a number
# to begin with.
if(($t eq "enum") && ($v !~ /^\d+$/)) {
if(!defined($this->{'fieldEnumValues'}->{$f})) {
$this->{'connection'}->pushMessage(&ARS::AR_RETURN_ERROR,
81004,
ARS/OOform.pm view on Meta::CPAN
$this->{'connection'}->pushMessage(&ARS::AR_RETURN_ERROR,
81000,
"usage: form->internal2value(-field => name, -id => id, -value => value)\nid or field parameter are required.")
unless (defined($f) || defined($id));
$f = $this->getFieldName(-id => $id) unless defined($f);
my ($t) = $this->getFieldType($f);
print "internal2value($f, $v) type=$t\n"
if $this->{'connection'}->{'.debug'};
# translate an enumeration value into a text value
if($t eq "enum") {
# if the field doesnt exist in our cache, or if the
# enumeration value exceeds the known list of enumerations,
# barf.
return undef unless defined $v;
ARS/OOform.pm view on Meta::CPAN
my ($allfields) = 1;
if(defined($fields)) {
$allfields = 0;
foreach (@{$fields}) {
push @fieldlist, $this->getFieldID($_);
}
}
# what we want to do is: retrieve all of the values, but for
# certain datatypes (attachments) we want to insert
# an object instead of the field value. for enum types,
# we want to decode the value.
#print "("; print $this->{'form'}; print ", $eid, @fieldlist)\n";
my @v;
if($allfields == 0) {
@v = ARS::ars_GetEntry($this->{'connection'}->{'ctrl'},
$this->{'form'},
$eid, @fieldlist);
} else {
ARS/OOmsgs.pm view on Meta::CPAN
sub initCatch {
my $this = shift;
$this->setCatch(&ARS::AR_RETURN_WARNING => "internalWarn");
$this->setCatch(&ARS::AR_RETURN_ERROR => "internalDie");
$this->setCatch(&ARS::AR_RETURN_FATAL => "internalDie");
}
sub setCatch {
my $this = shift;
my $type = shift;
my $func = shift;
$this->{'.catch'}->{$type} = $func;
}
# this routine is periodically called to see if any exceptions
# have occurred. if they have, and an exception handler is specified,
# we will call the handler and pass it the exception.
sub tryCatch {
my $this = shift;
if(defined($this->{'.catch'}) && ref($this->{'.catch'}) eq "HASH") {
ARS/OOmsgs.pm view on Meta::CPAN
if(defined($this->{'.catch'}->{$_}) && $this->hasMessageType($_)) {
my $stackTrace = Carp::longmess("exception generated");
&{$this->{'.catch'}->{$_}}($_, $this->messages(),
$stackTrace);
}
}
}
}
sub pushMessage {
my ($this, $type, $num, $text) = (shift, shift, shift, shift);
$ARS::ars_errhash{numItems}++;
push @{$ARS::ars_errhash{messageType}}, $type;
push @{$ARS::ars_errhash{messageNum}}, $num;
push @{$ARS::ars_errhash{messageText}}, $text;
$this->tryCatch();
}
sub messages {
my(%mTypes) = ( 0 => "OK", 1 => "WARNING", 2 => "ERROR", 3 => "FATAL",
4 => "INTERNAL ERROR",
-1 => "TRACEBACK");
my ($this, $type, $str) = (shift, shift, undef);
return $ars_errstr if(!defined($type));
for(my $i = 0; $i < $ARS::ars_errhash{numItems}; $i++) {
if(@{$ARS::ars_errhash{'messageType'}}[$i] == $type) {
$s .= sprintf("[%s] %s (ARERR \#%d)",
$mTypes{@{$ARS::ars_errhash{messageType}}[$i]},
@{$ARS::ars_errhash{messageText}}[$i],
@{$ARS::ars_errhash{messageNum}}[$i]);
$s .= "\n" if($i < $ARS::ars_errhash{numItems}-1);
}
}
return $s;
}
ARS/OOsup.pm view on Meta::CPAN
my ($server, $username, $password, $catch, $ctrl, $dbg, $tcpport) =
rearrange([SERVER,USERNAME,PASSWORD,CATCH,CTRL,DEBUG,TCPPORT],@p);
# should the OO layer emit debugging information?
$self->{'.debug'} = 0;
$self->{'.debug'} = 1 if(defined($dbg));
$self->initCatch();
# what error handlers should be called automatically by the OO layer?
# if a handler is 'undef' then the OO layer will ignore that type of
# exception (warning, error or fatal). it is then upto the user to
# check ->hasErrors(), etc.
# this should be a hash ref.
if(defined($catch) && ref($catch) ne "HASH") {
$self->pushMessage(&ARS::AR_RETURN_ERROR,
81000,
"catch parameter should be a HASH reference. (you gave me ".ref($catch)." reference)"
);
}
(CL) ! enhanced ARS OO interface to handle custom enum fields
(TS) fixed return value of ars_Import
(TS) fixed memory violation in ars_GetListContainer
(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) 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
(JCM) added ars_SetServerInfo() call
(JCM) added infra/pcpp.pl which is used to convert the xs
and c files into something that will compile against
activestate perl 5.6
(JCM) modifications to Makefile.PL to ease win32 compilations
(JCM) fixed bug in support.c:lookUpTypeName
(JCM) enhanced ars_Export to handle all possible export types
in whatever api we're compiled against
(JCM) enhanced ars_Import to handle all possible import types
in whatever api we're compiled against
(JCM) typo fix in ARS.xs for perl5.6 compatibility
(JCM) documenation update (ars_Import)
Released: 7/4/2000 Version: 1.68
(JCM) fixed a typo in support.c
Released: 11/23/99 Version: 1.65
(JCM) added better support for decoding filters/activelinks
for arsystem 4.0 (not finished yet)
(JCM) added support for data type "decimal" when performing
(Set|Create)Entry
Released: 04/7/99 Version: 1.6403 BETA
(JCM) tested/fixed compiling against pre-4.0 apis.
(JCM) OO: now checks named params to ensure you don't
mis-spell them.
structs. added some examples of decoding them.
Released: 02/18/97 Version: 1.42
(JWM) added destructors for the ARS package that will correctly
call ARTermination when the package is unloaded (when your
script exits).
(JWM) fixed minor type casting problem that prevented compilation
on HP-UX
(JCM) compiled with -Wall and cleaned up some suspicious code.
Released: 02/17/97 Version: 1.41
(JCM) added NT routines to html doc
html/manual/ars_GetFieldByName.html
html/manual/ars_GetContainer.html
html/manual/ars_DeleteImage.html
html/manual/ars_GetServerCharSet.html
html/manual/ars_GetListGroup.html
html/manual/ars_CreateCharMenu.html
html/manual/ars_DecodeAlertMessage.html
html/manual/ds_enumitemstruct.html
html/manual/ars_GetCharMenu.html
html/manual/ars_GetEntry.html
html/manual/ds_schematype.html
html/manual/ars_simpleMenu.html
html/manual/ars_CreateSchema.html
html/manual/ars_SetServerInfo.html
html/manual/ars_GetServerInfo.html
html/manual/ds_getcharmenu_hash.html
html/manual/ds_charmenu_sql_hash.html
html/manual/ars_CreateEntry.html
html/manual/ds_bytelist_hash.html
html/manual/ars_GetMultipleEntries.html
html/manual/ars_ExecuteProcess.html
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
ARS/nparm.pm
ARS/OOmsgs.pm
ARS/OOsup.pm
Makefile.PL view on Meta::CPAN
# $Header: /cvsroot/arsperl/ARSperl/Makefile.PL,v 1.88 2011/07/29 13:05:27 tstapff Exp $
#
# ARSperl Makefile
#
# INSTRUCTIONS:
# Set the following below:
# 1) path to API ($ARSAPI below)
# 2) libraries (uncomment/commentout appropriate $ARS_LIBS lines)
# 3) defines (see DEFINE OPTIONS)
#
# run with "perl Makefile.PL" then type "make"
#
require 5.005;
use ExtUtils::MakeMaker;
use Config;
use Cwd;
$debug = 0;
Makefile.PL view on Meta::CPAN
foreach ("ar", "arerrno") {
my $headerFile = "${ARSAPI}/include/${_}.h";
# # arsystem >= 5.0 doesnt have nt libs/hdrs anymore
# if( ($ARSVERSION >= 5.0) && /^nt/ ) {
# open(FD, "> ARS/${_}-h.pm") || die "open: $!";
# print FD "\# as of ARSystem 5.0, the NT (notifier) routines
## are retired. so this file is just stubbed.
#1;\n";
# close(FD);
# open (FD, "> ARS/artypes.ph") || die "open: $!";
# print FD "\# hackaround for artypes.h. do not remove.\n1;\n";
# close(FD);
# next;
# }
# arsystem <= 6.0.3 doesnt have artypes.h
next if ( ($ARAPIVERSION < ARS_VERSION_63) && /^artypes$/ );
die "couldn't find $headerFile" if (! -e $headerFile);
# # due to the endless confusion over h2ph, i'm including
# # a known-good copy in the arsperl distribution. the
# # -d should make it create _h2ph_pre in the current
# # directory incase you never ran h2ph before (as root)
if ($_ eq "artypes") {
$rv = system("$Config{'perlpath'} infra/h2ph -d ./ARS < $headerFile > ARS/${_}.ph");
} else {
$rv = system("$Config{'perlpath'} infra/h2ph -d ./ARS < $headerFile > ARS/${_}-h.pm");
}
# unlink ('ARS/_h2ph_pre.ph');
# open (FD, "> ARS/_h2ph_pre.ph") || die "open: $!";
# print FD "1;\n";
# close(FD);
Makefile.PL view on Meta::CPAN
";
exit 0;
# ROUTINE
# GenerateSupportDotH(template-file, includes-dir)
#
# DESCRIPTION
# this routine extracts some information from the
# "ar.h" file and generates some "type maps" which help
# us translate from code numbers to readable text.
sub GenerateSupportDotH {
my ($tmpl, $incdir) = (shift, shift);
my (@arh);
$incdir =~ s/^-I//g;
$incdir =~ s/^"//;
$incdir =~ s/"$//;
Makefile.PL view on Meta::CPAN
print "\tProcessing AR_MENU_REFRESH codes..\n";
my($line, $code);
foreach $line (grep (/^\#define\s+AR_MENU_REFRESH.*/, @arh)) {
$code = (split(/\s/, $line))[1];
print "\t\t$code\n" if $debug;
$code =~ /^AR_MENU_REFRESH_(\w+)/;
print FD " { $code, \t\t\"\L$1\E\" },\n";
}
}
elsif(/CHARMENUDDTYPEMAP/) {
print "\tProcessing AR_CHAR_MENU_DD type codes..\n";
my($code, $line);
foreach $line (grep (/^\#define\s+AR_CHAR_MENU_DD_.*/, @arh)) {
$code = (split(/\s/, $line))[1];
print "\t\t$code\n" if $debug;
$code =~ /^AR_CHAR_MENU_(\w+)/;
last if ($1 eq "DD_DB_NAME");
print FD " { $code, \t\t\"\L$1\E\" },\n";
}
}
elsif(/CHARMENUDDNAMEMAP/) {
StructDef.pl view on Meta::CPAN
'7.6.4' => '18',
);
$CTRL_PREFIX = '_';
$INVD_PREFIX = '#';
%CONVERT = (
ARFieldLimitList => {
_num => 'p->numItems',
_list => 'p->fieldLimitList',
_type => 'ARFieldLimitStruct',
},
ARFieldLimitStruct => {
# _typeparam => 1,
_switch => 'p->dataType',
# _map => 'DataTypeMap',
# _switch => 'p->dataType',
_map => 'dataType',
_case => {
AR_DATA_TYPE_INTEGER => {
_type => 'ARIntegerLimitsStruct',
_data => 'p->u.intLimits',
},
AR_DATA_TYPE_REAL => {
_type => 'ARRealLimitsStruct',
_data => 'p->u.realLimits',
},
AR_DATA_TYPE_CHAR => {
_type => 'ARCharLimitsStruct',
_data => 'p->u.charLimits',
},
AR_DATA_TYPE_DIARY => {
_type => 'ARDiaryLimitsStruct',
_data => 'p->u.diaryLimits',
},
AR_DATA_TYPE_ENUM => {
_min_version => '5.0.0',
_type => 'AREnumLimitsStruct',
_data => 'p->u.enumLimits',
},
AR_DATA_TYPE_DECIMAL => {
_type => 'ARDecimalLimitsStruct',
_data => 'p->u.decimalLimits',
},
AR_DATA_TYPE_ATTACH => {
_type => 'ARAttachLimitsStruct',
_data => 'p->u.attachLimits',
},
AR_DATA_TYPE_CURRENCY => {
_min_version => '5.1.0',
_type => 'ARCurrencyLimitsStruct',
_data => 'p->u.currencyLimits',
},
AR_DATA_TYPE_DATE => {
_min_version => '5.1.0',
_type => 'ARDateLimitsStruct',
_data => 'p->u.dateLimits',
},
AR_DATA_TYPE_TABLE => {
_type => 'ARTableLimitsStruct',
_data => 'p->u.tableLimits',
},
AR_DATA_TYPE_COLUMN => {
_type => 'ARColumnLimitsStruct',
_data => 'p->u.columnLimits',
},
AR_DATA_TYPE_VIEW => {
_min_version => '5.0.0',
_type => 'ARViewLimits',
_data => 'p->u.viewLimits',
},
AR_DATA_TYPE_DISPLAY => {
_min_version => '5.0.0',
_type => 'ARDisplayLimits',
_data => 'p->u.displayLimits',
},
},
},
ARIntegerLimitsStruct => {
min => {
_type => 'long',
_data => 'p->rangeLow',
},
max => {
_type => 'long',
_data => 'p->rangeHigh',
},
},
ARRealLimitsStruct => {
min => {
_type => 'double',
_data => 'p->rangeLow',
},
max => {
_type => 'double',
_data => 'p->rangeHigh',
},
precision => {
_type => 'int',
_data => 'p->precision',
},
},
ARCharLimitsStruct => {
maxLength => {
_type => 'unsigned int',
_data => 'p->maxLength',
},
menuStyle => {
_type => 'unsigned int',
_data => 'p->menuStyle',
_map => {
AR_MENU_APPEND => 'append',
AR_MENU_OVERWRITE => 'overwrite',
},
},
match => {
_type => 'unsigned int',
_data => 'p->qbeMatchOperation',
_map => {
AR_QBE_MATCH_ANYWHERE => 'anywhere',
AR_QBE_MATCH_LEADING => 'leading',
AR_QBE_MATCH_EQUAL => 'equal',
},
},
charMenu => {
_type => 'ARNameType',
_data => 'p->charMenu',
},
pattern => {
_type => 'char*',
_data => 'p->pattern',
},
fullTextOptions => {
_type => 'unsigned int',
_data => 'p->fullTextOptions',
_map => {
AR_FULLTEXT_OPTIONS_NONE => 'none',
AR_FULLTEXT_OPTIONS_INDEXED => 'indexed',
},
},
lengthUnits => {
_min_version => '7.5.0',
_type => 'unsigned int',
_data => 'p->lengthUnits',
_map => {
AR_LENGTH_UNIT_BYTE => 'byte',
AR_LENGTH_UNIT_CHAR => 'char',
},
},
storageOptionForCLOB => {
_min_version => '7.5.0',
_type => 'unsigned int',
_data => 'p->storageOptionForCLOB',
_map => {
AR_STORE_OPT_DEF => 'default',
AR_STORE_OPT_INROW => 'inrow',
AR_STORE_OPT_OUTROW => 'outrow',
},
},
},
ARDiaryLimitsStruct => {
fullTextOptions => {
_type => 'unsigned int',
_data => 'p->fullTextOptions',
_map => {
AR_FULLTEXT_OPTIONS_NONE => 'none',
AR_FULLTEXT_OPTIONS_INDEXED => 'indexed',
},
},
},
AREnumLimitsStruct => {
_min_version => '5.0.0',
enumLimits => {
_switch => 'p->listStyle',
_case => {
AR_ENUM_STYLE_REGULAR => {
regularList => {
_type => 'ARNameList',
_data => 'p->u.regularList',
},
},
AR_ENUM_STYLE_CUSTOM => {
customList => {
_type => 'AREnumItemList',
_data => 'p->u.customList',
},
},
AR_ENUM_STYLE_QUERY => {
queryList => {
_type => 'AREnumQueryStruct',
_data => 'p->u.queryList',
},
},
},
},
},
ARAttachLimitsStruct => {
maxSize => {
_type => 'unsigned long',
_data => 'p->maxSize',
},
attachType => {
_type => 'unsigned int',
_data => 'p->attachType',
},
},
ARTableLimitsStruct => {
numColumns => {
_type => 'unsigned int',
_data => 'p->numColumns',
},
qualifier => {
_type => 'ARQualifierStruct',
_data => 'p->qualifier',
},
maxRetrieve => {
_type => 'unsigned int',
_data => 'p->maxRetrieve',
},
schema => {
_type => 'ARNameType',
_data => 'p->schema',
},
server => {
_type => 'ARServerNameType',
_data => 'p->server',
},
sampleSchema => {
_min_version => '6.0.0',
_type => 'ARNameType',
_data => 'p->sampleSchema',
},
sampleServer => {
_min_version => '6.0.0',
_type => 'ARServerNameType',
_data => 'p->sampleServer',
},
},
ARColumnLimitsStruct => {
parent => {
_type => 'ARInternalId',
_data => 'p->parent',
},
dataField => {
_type => 'ARInternalId',
_data => 'p->dataField',
},
dataSource => {
_type => 'unsigned int',
_data => 'p->dataSource',
},
colLength => {
_type => 'unsigned int',
_data => 'p->colLength',
},
},
ARDecimalLimitsStruct => {
rangeLow => {
_type => 'char*',
_data => 'p->rangeLow',
},
rangeHigh => {
_type => 'char*',
_data => 'p->rangeHigh',
},
precision => {
_type => 'int',
_data => 'p->precision',
},
},
ARViewLimits => {
_min_version => '5.0.0',
maxLength => {
_type => 'unsigned int',
_data => 'p->maxLength',
},
},
ARDisplayLimits => {
_min_version => '5.0.0',
maxLength => {
_type => 'unsigned int',
_data => 'p->maxLength',
},
lengthUnits => {
_min_version => '7.5.0',
_type => 'unsigned int',
_data => 'p->lengthUnits',
_map => {
AR_LENGTH_UNIT_BYTE => 'byte',
AR_LENGTH_UNIT_CHAR => 'char',
},
},
},
ARDateLimitsStruct => {
_min_version => '5.1.0',
minDate => {
_type => 'int',
_data => 'p->minDate',
},
maxDate => {
_type => 'int',
_data => 'p->maxDate',
},
},
ARCurrencyLimitsStruct => {
_min_version => '5.1.0',
rangeLow => {
_type => 'char*',
_data => 'p->rangeLow',
},
rangeHigh => {
_type => 'char*',
_data => 'p->rangeHigh',
},
precision => {
_type => 'int',
_data => 'p->precision',
},
functionalCurrencies => {
_type => 'ARCurrencyDetailList',
_data => 'p->functionalCurrencies',
},
allowableCurrencies => {
_type => 'ARCurrencyDetailList',
_data => 'p->allowableCurrencies',
},
},
ARNameList => {
_num => 'p->numItems',
_list => 'p->nameList',
_type => 'ARNameType',
},
ARCurrencyDetailList => {
_min_version => '5.1.0',
_num => 'p->numItems',
_list => 'p->currencyDetailList',
_type => 'ARCurrencyDetailStruct',
},
ARCurrencyDetailStruct => {
_min_version => '5.1.0',
currencyCode => {
_type => 'ARCurrencyCodeType',
_data => 'p->currencyCode',
},
precision => {
_type => 'int',
_data => 'p->precision',
},
},
AREnumItemList => {
_min_version => '5.0.0',
_num => 'p->numItems',
_list => 'p->enumItemList',
_type => 'AREnumItemStruct',
},
AREnumQueryStruct => {
_min_version => '5.0.0',
schema => {
_type => 'ARNameType',
_data => 'p->schema',
},
server => {
_type => 'char[AR_MAX_SERVER_SIZE+1]',
_data => 'p->server',
},
qualifier => {
_type => 'ARQualifierStruct',
_data => 'p->qualifier',
},
nameField => {
_type => 'ARInternalId',
_data => 'p->nameField',
},
numberField => {
_type => 'ARInternalId',
_data => 'p->numberField',
},
},
AREnumItemStruct => {
_min_version => '5.0.0',
itemName => {
_type => 'ARNameType',
_data => 'p->itemName',
},
itemNumber => {
_type => 'unsigned long',
_data => 'p->itemNumber',
},
},
ARInternalId => {
_typedef => 'unsigned long',
},
ARNameType => {
_typedef => 'char[AR_MAX_NAME_SIZE+1]',
},
ARServerNameType => {
_typedef => 'char[AR_MAX_SERVER_SIZE+1]',
},
ARCurrencyCodeType => {
_min_version => '5.1.0',
_typedef => 'char[AR_MAX_CURRENCY_CODE_SIZE+1]',
},
ARFieldMappingList => {
_num => 'p->numItems',
_list => 'p->mappingList',
_type => 'ARFieldMappingStruct',
},
ARFieldMappingStruct => {
_switch => 'p->fieldType',
# _default => 'AR_FIELD_REGULAR',
_map => [ 'fieldType', {
AR_FIELD_NONE => 0,
AR_FIELD_REGULAR => 1,
AR_FIELD_JOIN => 2,
AR_FIELD_VIEW => 3,
AR_FIELD_VENDOR => 4,
StructDef.pl view on Meta::CPAN
} ],
_case => {
AR_FIELD_NONE => {
_nodata => 1,
},
AR_FIELD_REGULAR => {
_nodata => 1,
},
AR_FIELD_JOIN => {
'join' => {
_type => 'ARJoinMappingStruct',
_data => 'p->u.join',
},
},
AR_FIELD_VIEW => {
view => {
_type => 'ARViewMappingStruct',
_data => 'p->u.view',
},
},
AR_FIELD_VENDOR => {
_min_version => '5.0.0',
vendor => {
_type => 'ARVendorMappingStruct',
_data => 'p->u.vendor',
},
},
AR_FIELD_INHERITANCE => {
_min_version => '6.0.0',
inheritance => {
_type => 'ARInheritanceMappingStruct',
_data => 'p->u.inheritance',
},
},
},
},
ARJoinMappingStruct => {
schemaIndex => {
_type => 'unsigned int',
_data => 'p->schemaIndex',
},
realId => {
_type => 'ARInternalId',
_data => 'p->realId',
},
},
ARViewMappingStruct => {
fieldName => {
_type => 'ARNameType',
_data => 'p->fieldName',
},
},
ARVendorMappingStruct => {
_min_version => '5.0.0',
fieldName => {
_type => 'ARNameType',
_data => 'p->fieldName',
},
},
ARInheritanceMappingStruct => {
_min_version => '6.0.0',
srcSchema => {
_type => 'ARNameType',
_data => 'p->srcSchema',
},
referenceMask => {
_type => 'unsigned int',
_data => 'p->referenceMask',
},
dataMappingId => {
_type => 'unsigned int',
_data => 'p->dataMappingId',
},
},
ARQualifierStruct => {
_switch => 'p->operation',
_map => [ 'oper', {
AR_COND_OP_AND => 'and',
AR_COND_OP_OR => 'or',
AR_COND_OP_NOT => 'not',
AR_COND_OP_REL_OP => 'rel_op',
AR_COND_OP_FROM_FIELD => 'external',
} ],
_case => {
AR_COND_OP_NONE => {
_default => 1,
},
AR_COND_OP_AND => {
left => {
_type => 'ARQualifierStruct*',
_data => 'p->u.andor.operandLeft',
},
right => {
_type => 'ARQualifierStruct*',
_data => 'p->u.andor.operandRight',
},
},
AR_COND_OP_OR => {
left => {
_type => 'ARQualifierStruct*',
_data => 'p->u.andor.operandLeft',
},
right => {
_type => 'ARQualifierStruct*',
_data => 'p->u.andor.operandRight',
},
},
AR_COND_OP_NOT => {
'not' => {
_type => 'ARQualifierStruct*',
_data => 'p->u.not',
},
},
AR_COND_OP_REL_OP => {
rel_op => {
_type => 'ARRelOpStruct*',
_data => 'p->u.relOp',
}
},
AR_COND_OP_FROM_FIELD => {
fieldId => {
_type => 'ARInternalId',
_data => 'p->u.fieldId',
},
},
},
},
ARRelOpStruct => {
oper => {
_type => 'unsigned int',
_data => 'p->operation',
_map => {
AR_REL_OP_EQUAL => '==',
AR_REL_OP_GREATER => '>',
AR_REL_OP_GREATER_EQUAL => '>=',
AR_REL_OP_LESS => '<',
AR_REL_OP_LESS_EQUAL => '<=',
AR_REL_OP_NOT_EQUAL => '!=',
AR_REL_OP_LIKE => 'like',
AR_REL_OP_IN => 'in',
},
},
left => {
_type => 'ARFieldValueOrArithStruct',
_data => 'p->operandLeft',
},
right => {
_type => 'ARFieldValueOrArithStruct',
_data => 'p->operandRight',
},
},
ARFieldValueOrArithStruct => {
_switch => 'p->tag',
_case => {
AR_FIELD => {
fieldId => {
_type => 'ARInternalId',
_data => 'p->u.fieldId',
},
},
AR_VALUE => {
value => {
_type => 'ARValueStruct',
_data => 'p->u.value',
},
},
AR_ARITHMETIC => {
arith => {
_type => 'ARArithOpStruct*',
_data => 'p->u.arithOp',
},
},
AR_STAT_HISTORY => {
statHistory => {
_type => 'ARStatHistoryValue',
_data => 'p->u.statHistory',
},
},
AR_VALUE_SET => {
valueSet => {
_type => 'ARValueList',
_data => 'p->u.valueSet',
},
},
AR_CURRENCY_FLD => {
_min_version => '5.1.0',
currencyField => {
_type => 'ARCurrencyPartStruct*',
_data => 'p->u.currencyField',
},
},
AR_FIELD_TRAN => {
TR_fieldId => {
_type => 'ARInternalId',
_data => 'p->u.fieldId',
},
},
AR_FIELD_DB => {
DB_fieldId => {
_type => 'ARInternalId',
_data => 'p->u.fieldId',
},
},
AR_LOCAL_VARIABLE => {
variable => {
_type => 'unsigned int',
_data => 'p->u.variable',
},
},
AR_QUERY => {
queryValue => {
_type => 'ARQueryValueStruct*',
_data => 'p->u.queryValue',
},
},
AR_FIELD_CURRENT => {
queryCurrent => {
_type => 'ARInternalId',
_data => 'p->u.fieldId',
},
},
},
},
#ARArithOpStruct => {
# oper => {
# _type => 'unsigned int',
# _data => 'p->operation',
# _map => {
# AR_ARITH_OP_ADD => '+',
# AR_ARITH_OP_SUBTRACT => '-',
# AR_ARITH_OP_MULTIPLY => '*',
# AR_ARITH_OP_DIVIDE => '/',
# AR_ARITH_OP_MODULO => '%',
# AR_ARITH_OP_NEGATE => '-',
# },
# },
# left => {
# _type => 'ARFieldValueOrArithStruct',
# _data => 'p->operandLeft',
# },
# right => {
# _type => 'ARFieldValueOrArithStruct',
# _data => 'p->operandRight',
# },
#},
ARStatHistoryValue => {
_header_only => 1,
enumVal => {
_type => 'unsigned long',
_data => 'p->enumVal',
},
userOrTime => {
_type => 'unsigned int',
_data => 'p->userOrTime',
},
},
ARQueryValueStruct => {
schema => {
_type => 'ARNameType',
_data => 'p->schema',
},
server => {
_type => 'char[AR_MAX_SERVER_SIZE+1]',
_data => 'p->server',
},
qualifier => {
_type => 'ARQualifierStruct*',
_data => 'p->qualifier',
},
valueField => {
_type => 'ARInternalId',
_data => 'p->valueField',
},
multi => {
_type => 'unsigned int',
_data => 'p->multiMatchCode',
_map => {
AR_QUERY_VALUE_MULTI_ERROR => 'error',
AR_QUERY_VALUE_MULTI_FIRST => 'first',
AR_QUERY_VALUE_MULTI_SET => 'set',
},
},
},
ARValueList => {
_num => 'p->numItems',
_list => 'p->valueList',
_type => 'ARValueStruct',
},
ARValueStruct => {
_typeparam => 1,
_header_only => 1,
},
ARCompoundSchemaList => {
_num => 'p->numItems',
_list => 'p->compoundSchema',
_type => 'ARCompoundSchema',
},
ARCompoundSchema => {
_switch => 'p->schemaType',
_map => [ 'schemaType', {
AR_SCHEMA_REGULAR => 'regular',
AR_SCHEMA_JOIN => 'join',
AR_SCHEMA_VIEW => 'view',
AR_SCHEMA_DIALOG => 'dialog',
AR_SCHEMA_VENDOR => 'vendor',
} ],
_case => {
AR_SCHEMA_REGULAR => {
_nodata => 1,
},
AR_SCHEMA_DIALOG => {
_nodata => 1,
},
AR_SCHEMA_JOIN => {
'join' => {
_type => 'ARJoinSchema',
_data => 'p->u.join',
},
},
AR_SCHEMA_VIEW => {
view => {
_type => 'ARViewSchema',
_data => 'p->u.view',
},
},
AR_SCHEMA_VENDOR => {
_min_version => '5.0.0',
vendor => {
_type => 'ARVendorSchema',
_data => 'p->u.vendor',
},
},
},
},
ARJoinSchema => {
memberA => {
_type => 'ARNameType',
_data => 'p->memberA',
},
memberB => {
_type => 'ARNameType',
_data => 'p->memberB',
},
joinQual => {
_type => 'ARQualifierStruct',
_data => 'p->joinQual',
},
option => {
_type => 'unsigned int',
_data => 'p->option',
},
},
ARViewSchema => {
tableName => {
_type => 'char[AR_MAX_TABLENAME_SIZE+1]',
_data => 'p->tableName',
},
keyField => {
_type => 'ARNameType',
_data => 'p->keyField',
},
},
ARVendorSchema => {
_min_version => '5.0.0',
vendorName => {
_type => 'ARNameType',
_data => 'p->vendorName',
},
tableName => {
_type => 'char[AR_MAX_TABLENAME_SIZE+1]',
_data => 'p->tableName',
},
},
AREntryListFieldList => {
_num => 'p->numItems',
_list => 'p->fieldsList',
_type => 'AREntryListFieldStruct',
},
AREntryListFieldStruct => {
fieldId => {
_type => 'ARInternalId',
_data => 'p->fieldId',
},
columnWidth => {
_type => 'unsigned int',
_data => 'p->columnWidth',
},
separator => {
_type => 'char[10]',
_data => 'p->separator',
},
},
ARSortList => {
_num => 'p->numItems',
_list => 'p->sortList',
_type => 'ARSortStruct',
},
ARSortStruct => {
fieldId => {
_type => 'ARInternalId',
_data => 'p->fieldId',
},
sortOrder => {
_type => 'unsigned int',
_data => 'p->sortOrder',
},
},
ARIndexList => {
_num => 'p->numItems',
_list => 'p->indexList',
_type => 'ARIndexStruct',
},
ARIndexStruct => {
fieldIds => {
_num => 'p->numFields',
_list => 'p->fieldIds',
_type => 'ARInternalId[]',
},
unique => {
_type => 'ARBoolean',
_data => 'p->unique',
_default => 'FALSE',
},
# indexName => {
# _type => 'ARNameType',
# _data => 'p->indexName',
# },
# dataMappingUsageCnt => {
# _type => 'unsigned int',
# _data => 'p->dataMappingUsageCnt',
# },
},
ARBoolean => {
_typedef => 'unsigned char',
},
ARDayStruct => {
monthday => {
_type => 'long',
_data => 'p->monthday',
},
weekday => {
_type => 'long',
_data => 'p->weekday',
},
hourmask => {
_type => 'long',
_data => 'p->hourmask',
},
minute => {
_type => 'unsigned int',
_data => 'p->minute',
},
},
ARContainerOwnerObjList => {
_num => 'p->numItems',
_list => 'p->ownerObjList',
_type => 'ARContainerOwnerObj',
},
ARReferenceList => {
_num => 'p->numItems',
_list => 'p->referenceList',
_type => 'ARReferenceStruct',
},
ARContainerOwnerObj => {
type => {
_type => 'unsigned int',
_data => 'p->type',
_map => {
ARCONOWNER_NONE => 'none',
ARCONOWNER_ALL => 'all',
ARCONOWNER_SCHEMA => 'schema',
},
},
ownerName => {
_type => 'ARNameType',
_data => 'p->ownerName',
},
},
ARPushFieldsActionStruct => {
_min_version => '6.0.0',
pushFieldsList => {
_type => 'ARPushFieldsList',
_data => 'p->pushFieldsList',
},
sampleServer => {
_type => 'ARServerNameType',
_data => 'p->sampleServer',
},
sampleSchema => {
_type => 'ARNameType',
_data => 'p->sampleSchema',
},
},
AROpenDlgStruct => {
serverName => {
_type => 'ARServerNameType',
_data => 'p->serverName',
},
schemaName => {
_type => 'ARNameType',
_data => 'p->schemaName',
},
vuiLabel => {
_type => 'ARNameType',
_data => 'p->vuiLabel',
},
closeBox => {
_map => {
FALSE => 'false',
TRUE => 'true',
},
_type => 'ARBoolean',
_data => 'p->closeBox',
},
inputValueFieldPairs => {
_type => 'ARFieldAssignList',
_data => 'p->inputValueFieldPairs',
},
outputValueFieldPairs => {
_type => 'ARFieldAssignList',
_data => 'p->outputValueFieldPairs',
},
windowMode => {
_max_version => '5.1.2',
_map => {
AR_ACTIVE_LINK_ACTION_OPEN_DLG => "open_dlg",
AR_ACTIVE_LINK_ACTION_OPEN_SEARCH => "open_search",
AR_ACTIVE_LINK_ACTION_OPEN_SUBMIT => "open_submit",
AR_ACTIVE_LINK_ACTION_OPEN_MODIFY_LST => "open_modify_lst",
AR_ACTIVE_LINK_ACTION_OPEN_MODIFY_DETAIL => "open_modify_detail",
AR_ACTIVE_LINK_ACTION_OPEN_MODIFY_SPLIT => "open_modify_split",
AR_ACTIVE_LINK_ACTION_OPEN_DSPLY_LST => "open_dsply_lst",
AR_ACTIVE_LINK_ACTION_OPEN_DSPLY_DETAIL => "open_dsply_detail",
AR_ACTIVE_LINK_ACTION_OPEN_DSPLY_SPLIT => "open_dsply_split",
AR_ACTIVE_LINK_ACTION_OPEN_REPORT => "open_report",
},
_type => 'int',
_data => 'p->windowMode',
},
'windowMode+' => {
_min_version => '6.0.0',
_map => {
AR_ACTIVE_LINK_ACTION_OPEN_DLG => "open_dlg",
AR_ACTIVE_LINK_ACTION_OPEN_SEARCH => "open_search",
AR_ACTIVE_LINK_ACTION_OPEN_SUBMIT => "open_submit",
AR_ACTIVE_LINK_ACTION_OPEN_MODIFY_LST => "open_modify_lst",
AR_ACTIVE_LINK_ACTION_OPEN_MODIFY_DETAIL => "open_modify_detail",
AR_ACTIVE_LINK_ACTION_OPEN_MODIFY_SPLIT => "open_modify_split",
AR_ACTIVE_LINK_ACTION_OPEN_DSPLY_LST => "open_dsply_lst",
AR_ACTIVE_LINK_ACTION_OPEN_DSPLY_DETAIL => "open_dsply_detail",
AR_ACTIVE_LINK_ACTION_OPEN_DSPLY_SPLIT => "open_dsply_split",
AR_ACTIVE_LINK_ACTION_OPEN_REPORT => "open_report",
AR_ACTIVE_LINK_ACTION_OPEN_MODIFY => "open_modify",
AR_ACTIVE_LINK_ACTION_OPEN_DSPLY => "open_dsply",
},
_type => 'int',
_data => 'p->windowMode',
},
targetLocation => {
_type => 'char *',
_data => 'p->targetLocation',
},
query => {
_type => 'ARQualifierStruct',
_data => 'p->query',
},
noMatchContinue => {
_map => {
FALSE => 'false',
TRUE => 'true',
},
_type => 'ARBoolean',
_data => 'p->noMatchContinue',
},
suppressEmptyList => {
_map => {
FALSE => 'false',
TRUE => 'true',
},
_type => 'ARBoolean',
_data => 'p->suppressEmptyLst',
},
message => {
_type => 'ARMessageStruct',
_data => 'p->msg',
},
pollinginterval => {
_type => 'ARULong32',
_data => 'p->pollinginterval',
},
reportString => {
_type => 'char *',
_data => 'p->reportString',
},
sortOrderList => {
_type => 'ARSortList',
_data => 'p->sortOrderList',
},
},
ARCloseWndStruct => {
closeAll => {
_map => {
FALSE => 'false',
TRUE => 'true',
},
_type => 'ARBoolean',
_data => 'p->closeAll',
},
},
ARCommitChangesStruct => {
schemaName => {
_type => 'ARNameType',
_data => 'p->schemaName',
},
},
ARCallGuideStruct => {
serverName => {
_type => 'ARServerNameType',
_data => 'p->serverName',
},
guideName => {
_type => 'ARNameType',
_data => 'p->guideName',
},
guideMode => {
_type => 'int',
_data => 'p->guideMode',
},
loopTable => {
_type => 'ARInternalId',
_data => 'p->guideTableId',
},
inputValueFieldPairs => {
_min_version => '6.0.0',
_type => 'ARFieldAssignList',
_data => 'p->inputValueFieldPairs',
},
outputValueFieldPairs => {
_min_version => '6.0.0',
_type => 'ARFieldAssignList',
_data => 'p->outputValueFieldPairs',
},
sampleServer => {
_min_version => '6.0.0',
_type => 'ARServerNameType',
_data => 'p->sampleServer',
},
sampleGuide => {
_min_version => '6.0.0',
_type => 'ARNameType',
_data => 'p->sampleGuide',
},
},
ARExitGuideStruct => {
closeAll => {
_map => {
FALSE => 'false',
TRUE => 'true',
},
_type => 'ARBoolean',
_data => 'p->closeAll',
},
},
ARGotoGuideLabelStruct => {
label => {
_type => 'char *',
_data => 'p->label',
},
},
ARGotoActionStruct => {
tag => {
_type => 'unsigned int',
_data => 'p->tag',
},
fieldIdOrValue => {
_type => 'ARULong32',
_data => 'p->fieldIdOrValue',
},
},
ARWaitStruct => {
continueButtonTitle => {
_type => 'char *',
_data => 'p->continueButtonTitle',
},
},
ARDDEStruct => {
serviceName => {
_type => 'char *',
_data => 'p->serviceName',
},
topic => {
_type => 'char *',
_data => 'p->topic',
},
action => {
_type => 'unsigned int',
_data => 'p->action',
},
pathToProgram => {
_type => 'char *',
_data => 'p->pathToProgram',
},
command => {
_type => 'char *',
_data => 'p->command',
},
item => {
_type => 'char *',
_data => 'p->item',
},
},
ARAutomationStruct => {
autoServerName => {
_type => 'char *',
_data => 'p->autoServerName',
},
clsId => {
_type => 'char *',
_data => 'p->clsId',
},
action => {
_type => 'char *',
_data => 'p->action',
},
isVisible => {
_map => {
FALSE => 'false',
TRUE => 'true',
},
_type => 'ARBoolean',
_data => 'p->isVisible',
},
methodList => {
_type => 'ARCOMMethodList',
_data => 'p->methodList',
},
},
ARCOMMethodList => {
_num => 'p->numItems',
_list => 'p->methodList',
_type => 'ARCOMMethodStruct',
},
ARCOMMethodStruct => {
methodName => {
_type => 'char *',
_data => 'p->methodName',
},
methodIId => {
_type => 'char *',
_data => 'p->methodIId',
},
methodType => {
_type => 'unsigned int',
_data => 'p->methodType',
},
methodValue => {
_type => 'ARCOMValueStruct',
_data => 'p->methodValue',
},
parameterList => {
_type => 'ARCOMMethodParmList',
_data => 'p->parameterList',
},
},
ARCOMValueStruct => {
valueIId => {
_type => 'char *',
_data => 'p->valueIId',
},
transId => {
_type => 'ARInternalId',
_data => 'p->transId',
},
valueType => {
_type => 'unsigned int',
_data => 'p->valueType',
},
_switch => 'p->valueType',
_map => {
AR_COM_PARM_NULL => 'null',
AR_COM_PARM_FIELDID => 'fieldid',
AR_COM_PARM_VALUE => 'value',
},
_case => {
AR_COM_PARM_NULL => {
_default => 1,
},
AR_COM_PARM_FIELDID => {
fieldId => {
_type => 'ARInternalId',
_data => 'p->u.fieldId',
}
},
AR_COM_PARM_VALUE => {
value => {
_type => 'ARValueStruct',
_data => 'p->u.value',
},
},
},
},
ARCOMMethodParmList => {
_num => 'p->numItems',
_list => 'p->parameterList',
_type => 'ARCOMMethodParmStruct',
},
ARCOMMethodParmStruct => {
parmName => {
_type => 'char *',
_data => 'p->parmName',
},
parmType => {
_type => 'unsigned int',
_data => 'p->parmType',
},
parmValue => {
_type => 'ARCOMValueStruct',
_data => 'p->parmValue',
},
},
ARULong32 => {
_typedef => 'unsigned long',
},
ARLong32 => {
_typedef => 'long',
},
ARPushFieldsList => {
_num => 'p->numItems',
_list => 'p->pushFieldsList',
_type => 'ARPushFieldsStruct',
},
ARPushFieldsStruct => {
field => {
_type => 'ARAssignFieldStruct',
_data => 'p->field',
},
assign => {
_type => 'ARAssignStruct',
_data => 'p->assign',
},
},
ARCurrencyPartStruct => {
_min_version => '5.1.0',
fieldId => {
_type => 'ARInternalId',
_data => 'p->fieldId',
},
partTag => {
_type => 'unsigned int',
_data => 'p->partTag',
},
currencyCode => {
_type => 'ARCurrencyCodeType',
_data => 'p->currencyCode',
},
},
ARFilterActionList => {
_num => 'p->numItems',
_list => 'p->actionList',
_type => 'ARFilterActionStruct',
},
ARFilterActionStruct => {
_switch => 'p->action',
_map => {
AR_FILTER_ACTION_NONE => 'none',
AR_FILTER_ACTION_NOTIFY => 'notify',
AR_FILTER_ACTION_MESSAGE => 'message',
AR_FILTER_ACTION_LOG => 'log',
AR_FILTER_ACTION_FIELDS => 'assign_fields',
AR_FILTER_ACTION_PROCESS => 'process',
StructDef.pl view on Meta::CPAN
AR_FILTER_ACTION_CALLGUIDE => 'callGuide',
AR_FILTER_ACTION_EXITGUIDE => 'exitGuide',
AR_FILTER_ACTION_GOTOGUIDELABEL => 'gotoGuide',
},
_case => {
AR_FILTER_ACTION_NONE => {
_default => 1,
},
AR_FILTER_ACTION_NOTIFY => {
notify => {
_type => 'ARFilterActionNotify',
_data => 'p->u.notify',
},
},
AR_FILTER_ACTION_MESSAGE => {
message => {
_type => 'ARFilterStatusStruct',
_data => 'p->u.message',
},
},
AR_FILTER_ACTION_LOG => {
log => {
_type => 'char*',
_data => 'p->u.logFile',
},
},
AR_FILTER_ACTION_FIELDS => {
_min_version => '6.0.0',
assign_fields => {
_type => 'ARSetFieldsActionStruct',
_data => 'p->u.setFields',
},
},
'AR_FILTER_ACTION_FIELDS+' => {
_max_version => '5.1.2',
assign_fields => {
_type => 'ARFieldAssignList',
_data => 'p->u.fieldList',
},
},
AR_FILTER_ACTION_PROCESS => {
process => {
_type => 'char*',
_data => 'p->u.process',
},
},
AR_FILTER_ACTION_FIELDP => {
_min_version => '6.0.0',
fieldp => {
_type => 'ARPushFieldsActionStruct',
_data => 'p->u.pushFields',
},
},
'AR_FILTER_ACTION_FIELDP+' => {
_max_version => '5.1.2',
fieldp => {
_type => 'ARPushFieldsList',
_data => 'p->u.pushFieldsList',
},
},
AR_FILTER_ACTION_SQL => {
sqlCommand => {
_type => 'ARSQLStruct',
_data => 'p->u.sqlCommand',
},
},
AR_FILTER_ACTION_GOTOACTION => {
gotoAction => {
_type => 'ARGotoActionStruct',
_data => 'p->u.gotoAction',
},
},
AR_FILTER_ACTION_CALLGUIDE => {
callGuide => {
_type => 'ARCallGuideStruct',
_data => 'p->u.callGuide',
},
},
AR_FILTER_ACTION_EXITGUIDE => {
exitGuide => {
_type => 'ARExitGuideStruct',
_data => 'p->u.exitGuide',
},
},
AR_FILTER_ACTION_GOTOGUIDELABEL => {
gotoGuide => {
_type => 'char*',
_data => 'p->u.gotoGuide.label',
},
},
},
},
ARFilterActionNotify => {
user => {
_type => 'char *',
_data => 'p->user',
},
notifyText => {
_type => 'char *',
_data => 'p->notifyText',
},
notifyPriority => {
_type => 'unsigned int',
_data => 'p->notifyPriority',
},
notifyMechanism => {
_type => 'unsigned int',
_data => 'p->notifyMechanism',
},
notifyMechanismXRef => {
_type => 'ARInternalId',
_data => 'p->notifyMechanismXRef',
},
subjectText => {
_type => 'char *',
_data => 'p->subjectText',
},
fieldIdListType => {
_type => 'unsigned int',
_data => 'p->fieldIdListType',
},
fieldList => {
_type => 'ARInternalIdList',
_data => 'p->fieldIdList',
},
notifyBehavior => {
_min_version => '5.1.0',
_type => 'unsigned int',
_data => 'p->notifyBehavior',
},
notifyPermission => {
_min_version => '5.1.0',
_type => 'unsigned int',
_data => 'p->notifyPermission',
},
notifyAdvanced => {
_min_version => '5.1.0',
_type => 'ARFilterActionNotifyAdvanced*',
_data => 'p->notifyAdvanced',
_default => 'NULL',
},
},
ARSetFieldsActionStruct => {
_min_version => '6.0.0',
fieldList => {
_type => 'ARFieldAssignList',
_data => 'p->fieldList',
},
sampleServer => {
_type => 'ARServerNameType',
_data => 'p->sampleServer',
},
sampleSchema => {
_type => 'ARNameType',
_data => 'p->sampleSchema',
},
},
ARSQLStruct => {
server => {
_type => 'char[AR_MAX_SERVER_SIZE+1]',
_data => 'p->server',
},
command => {
_type => 'char *',
_data => 'p->command',
},
},
ARFilterActionNotifyAdvanced => {
_min_version => '5.1.0',
from => {
_type => 'char *',
_data => 'p->from',
},
replyTo => {
_type => 'char *',
_data => 'p->replyTo',
},
cc => {
_type => 'char *',
_data => 'p->cc',
},
bcc => {
_type => 'char *',
_data => 'p->bcc',
},
organization => {
_type => 'char *',
_data => 'p->organization',
},
mailboxName => {
_type => 'char *',
_data => 'p->mailboxName',
},
headerTemplate => {
_type => 'char *',
_data => 'p->headerTemplate',
},
footerTemplate => {
_type => 'char *',
_data => 'p->footerTemplate',
},
contentTemplate => {
_type => 'char *',
_data => 'p->contentTemplate',
},
# reserved1 => {
# _type => 'ARULong32',
# _data => 'p->reserved1',
# },
# reserved2 => {
# _type => 'ARULong32',
# _data => 'p->reserved2',
# },
# reserved3 => {
# _type => 'ARULong32',
# _data => 'p->reserved3',
# },
},
AREscalationTmStruct => {
_switch => 'p->escalationTmType',
_case => {
AR_ESCALATION_TYPE_INTERVAL => {
exitGuide => {
_type => 'ARLong32',
_data => 'p->u.interval',
},
},
AR_ESCALATION_TYPE_TIMEMARK => {
exitGuide => {
_type => 'ARDayStruct',
_data => 'p->u.date',
},
},
},
},
ARUnsignedIntList => {
_num => 'p->numItems',
_list => 'p->intList',
_type => 'unsigned int',
},
AREntryListFieldValueList => {
_num => 'p->numItems',
_list => 'p->entryList',
_type => 'AREntryListFieldValueStruct',
},
AREntryListFieldValueStruct => {
entryId => {
_type => 'AREntryIdList',
_data => 'p->entryId',
},
entryValues => {
_type => 'ARFieldValueList*',
_data => 'p->entryValues',
},
},
AREntryIdList => {
_num => 'p->numItems',
_list => 'p->entryIdList',
_type => 'AREntryIdType',
},
ARFieldValueList => {
_num => 'p->numItems',
_list => 'p->fieldValueList',
_type => 'ARFieldValueStruct',
},
ARFieldValueStruct => {
fieldId => {
_type => 'ARInternalId',
_data => 'p->fieldId',
},
value => {
_type => 'ARValueStruct',
_data => 'p->value',
},
},
AREntryIdType => {
_typedef => 'char[AR_MAX_ENTRYID_SIZE+1]',
},
ARAuditInfoStruct => {
_min_version => '7.0.0',
enable => {
_type => 'unsigned int',
_data => 'p->enable',
},
style => {
_type => 'unsigned int',
_data => 'p->style',
},
formName => {
_type => 'ARNameType',
_data => 'p->formName',
},
query => {
_type => 'ARQualifierStruct',
_data => 'p->query',
},
},
ARBulkEntryReturnList => {
_min_version => '6.3.0',
_num => 'p->numItems',
_list => 'p->entryReturnList',
_type => 'ARBulkEntryReturn',
},
ARBulkEntryReturn => {
_min_version => '6.3.0',
_switch => 'p->entryCallType',
_case => {
AR_BULK_ENTRY_CREATE => {
createEntryReturn => {
_type => 'AREntryReturn',
_data => 'p->u.createEntryReturn',
},
},
AR_BULK_ENTRY_SET => {
setEntryReturn => {
_type => 'ARStatusList',
_data => 'p->u.setEntryReturn',
},
},
AR_BULK_ENTRY_DELETE => {
deleteEntryReturn => {
_type => 'ARStatusList',
_data => 'p->u.deleteEntryReturn',
},
},
AR_BULK_ENTRY_MERGE => {
mergeEntryReturn => {
_type => 'AREntryReturn',
_data => 'p->u.mergeEntryReturn',
},
},
AR_BULK_ENTRY_XMLCREATE => {
xmlCreateEntryReturn => {
_type => 'ARXMLEntryReturn',
_data => 'p->u.xmlCreateEntryReturn',
},
},
AR_BULK_ENTRY_XMLSET => {
xmlSetEntryReturn => {
_type => 'ARXMLEntryReturn',
_data => 'p->u.xmlSetEntryReturn',
},
},
AR_BULK_ENTRY_XMLDELETE => {
xmlDeleteEntryReturn => {
_type => 'ARStatusList',
_data => 'p->u.xmlDeleteEntryReturn',
},
},
},
},
AREntryReturn => {
_min_version => '6.3.0',
entryId => {
_type => 'AREntryIdType',
_data => 'p->entryId',
},
status => {
_type => 'ARStatusList',
_data => 'p->status',
},
},
ARXMLEntryReturn => {
_min_version => '6.3.0',
outputDoc => {
_type => 'char *',
_data => 'p->outputDoc',
},
status => {
_type => 'ARStatusList',
_data => 'p->status',
},
},
ARStatusList => {
_num => 'p->numItems',
_list => 'p->statusList',
_type => 'ARStatusStruct',
},
ARCharMenuList => {
_num => 'p->numItems',
_list => 'p->charMenuList',
_type => 'ARCharMenuItemStruct',
},
ARCharMenuQueryStruct => {
schema => {
_type => 'ARNameType',
_data => 'p->schema',
},
server => {
_type => 'char[AR_MAX_SERVER_SIZE+1]',
_data => 'p->server',
},
labelField => {
_type => 'ARInternalId[AR_MAX_LEVELS_DYNAMIC_MENU]',
_data => 'p->labelField',
},
valueField => {
_type => 'ARInternalId',
_data => 'p->valueField',
},
sortOnLabel => {
_type => 'ARBoolean',
_data => 'p->sortOnLabel',
},
qualifier => {
_type => 'ARQualifierStruct',
_data => 'p->qualifier',
},
},
ARCharMenuFileStruct => {
fileLocation => {
_type => 'unsigned int',
_data => 'p->fileLocation',
},
filename => {
_type => 'char *',
_data => 'p->filename',
},
},
ARCharMenuSQLStruct => {
server => {
_type => 'char[AR_MAX_SERVER_SIZE+1]',
_data => 'p->server',
},
labelIndex => {
_type => 'int[AR_MAX_LEVELS_DYNAMIC_MENU]',
_data => 'p->labelIndex',
},
valueIndex => {
_type => 'int',
_data => 'p->valueIndex',
},
sqlCommand => {
_type => 'char *',
_data => 'p->sqlCommand',
},
},
ARCharMenuSSStruct => {
menuName => {
_type => 'ARNameType',
_data => 'p->menuName',
},
keywordList => {
_type => 'ARFieldValueList',
_data => 'p->keywordList',
},
parameterList => {
_type => 'ARFieldValueList',
_data => 'p->parameterList',
},
externList => {
_type => 'ARQualifierList',
_data => 'p->externList',
},
server => {
_type => 'char *',
_data => 'p->server',
},
schema => {
_type => 'char *',
_data => 'p->schema',
},
},
ARCharMenuDDStruct => {
server => {
_type => 'char[AR_MAX_SERVER_SIZE+1]',
_data => 'p->server',
},
nameType => {
_type => 'unsigned int',
_data => 'p->nameType',
},
valueFormat => {
_type => 'unsigned int',
_data => 'p->valueFormat',
},
structType => {
_type => 'unsigned int',
_data => 'p->structType',
},
_switch => 'p->structType',
_map => 'structType',
_case => {
AR_CHAR_MENU_DD_FORM => {
_type => 'ARCharMenuDDFormStruct',
_data => 'p->u.formDefn',
},
AR_CHAR_MENU_DD_FIELD => {
_type => 'ARCharMenuDDFieldStruct',
_data => 'p->u.fieldDefn',
},
},
},
ARCharMenuDDFormStruct => {
schemaType => {
_type => 'unsigned int',
_data => 'p->schemaType',
},
includeHidden => {
_type => 'ARBoolean',
_data => 'p->includeHidden',
_map => {
FALSE => 'false',
TRUE => 'true',
},
},
},
ARCharMenuDDFieldStruct => {
fieldType => {
_type => 'unsigned int',
_data => 'p->fieldType',
},
schema => {
_type => 'ARNameType',
_data => 'p->schema',
},
},
ARQualifierList => {
_num => 'p->numItems',
_list => 'p->qualifierList',
_type => 'ARQualifierStruct',
},
ARActiveLinkSvcActionStruct => {
_min_version => '7.1.0',
serverName => {
_type => 'ARServerNameType',
_data => 'p->serverName',
},
serviceSchema => {
_type => 'ARNameType',
_data => 'p->serviceSchema',
},
requestIdMap => {
_type => 'ARInternalId',
_data => 'p->requestIdMap',
},
inputFieldMapping => {
_type => 'ARFieldAssignList',
_data => 'p->inputFieldMapping',
},
outputFieldMapping => {
_type => 'ARFieldAssignList',
_data => 'p->outputFieldMapping',
},
sampleServer => {
_type => 'ARServerNameType',
_data => 'p->sampleServer',
},
sampleSchema => {
_type => 'ARNameType',
_data => 'p->sampleSchema',
},
},
ARLicenseDateStruct => {
month => {
_type => 'int',
_data => 'p->month',
},
day => {
_type => 'int',
_data => 'p->day',
},
year => {
_type => 'int',
_data => 'p->year',
},
},
ARLicenseValidStruct => {
numLicenses => {
_type => 'int',
_data => 'p->numLicenses',
},
isDemo => {
_type => 'ARBoolean',
_data => 'p->isDemo',
},
expireDate => {
_type => 'ARLicenseDateStruct',
_data => 'p->expireDate',
},
tokenList => {
_type => 'char *',
_data => 'p->tokenList',
},
},
ARMultiSchemaQueryFromList => {
_min_version => '7.5.0',
_num => 'p->numItems',
_list => 'p->listPtr',
_type => 'ARMultiSchemaQueryFromStruct',
},
ARMultiSchemaQueryFromStruct => {
_min_version => '7.5.0',
_switch => 'p->type',
queryFromAlias => {
_type => 'ARNameType',
_data => 'p->queryFromAlias',
},
joinType => {
_type => 'unsigned int',
_data => 'p->joinType',
},
joinQual => {
_type => 'ARMultiSchemaQualifierStruct*',
_data => 'p->joinQual',
_default => 'NULL',
},
_switch => 'p->type',
_case => {
AR_MULTI_SCHEMA_SCHEMA_NAME => {
schemaName => {
_type => 'ARNameType',
_data => 'p->u.schemaName',
},
},
AR_MULTI_SCHEMA_NESTED_QUERY => {
nestedQuery => {
_type => 'ARMultiSchemaNestedQueryStruct*',
_data => 'p->u.nestedQuery',
},
},
AR_MULTI_SCHEMA_RECURSIVE_QUERY => {
recursiveQuery => {
_type => 'ARMultiSchemaRecursiveQueryStruct*',
_data => 'p->u.recursiveQuery',
},
},
},
},
ARMultiSchemaNestedQueryStruct => {
_min_version => '7.5.0',
queryFromList => {
_type => 'ARMultiSchemaQueryFromList',
_data => 'p->queryFromList',
},
getListFields => {
_type => 'ARMultiSchemaFieldIdList',
_data => 'p->getListFields',
},
qualifier => {
_type => 'ARMultiSchemaQualifierStruct*',
_data => 'p->qualifier',
},
},
ARMultiSchemaRecursiveQueryStruct => {
_min_version => '7.5.0',
recursiveSchemaAlias => {
_type => 'ARNameType',
_data => 'p->recursiveSchemaAlias',
},
queryFromList => {
_type => 'ARMultiSchemaQueryFromList',
_data => 'p->queryFromList',
},
getListFields => {
_type => 'ARMultiSchemaFieldIdList',
_data => 'p->getListFields',
},
startQual => {
_type => 'ARMultiSchemaQualifierStruct*',
_data => 'p->startQual',
},
recursionQual => {
_type => 'ARMultiSchemaQualifierStruct*',
_data => 'p->recursionQual',
},
levelsToRetrieve => {
_type => 'int',
_data => 'p->levelsToRetrieve',
},
},
ARMultiSchemaQualifierStruct => {
_min_version => '7.5.0',
_switch => 'p->operation',
_map => [ 'oper', {
AR_COND_OP_AND => 'and',
AR_COND_OP_OR => 'or',
AR_COND_OP_NOT => 'not',
AR_COND_OP_REL_OP => 'rel_op',
AR_COND_OP_FROM_FIELD => 'external',
} ],
_case => {
AR_COND_OP_NONE => {
_default => 1,
},
AR_COND_OP_AND => {
left => {
_type => 'ARMultiSchemaQualifierStruct*',
_data => 'p->u.andor.operandLeft',
},
right => {
_type => 'ARMultiSchemaQualifierStruct*',
_data => 'p->u.andor.operandRight',
},
},
AR_COND_OP_OR => {
left => {
_type => 'ARMultiSchemaQualifierStruct*',
_data => 'p->u.andor.operandLeft',
},
right => {
_type => 'ARMultiSchemaQualifierStruct*',
_data => 'p->u.andor.operandRight',
},
},
AR_COND_OP_NOT => {
'not' => {
_type => 'ARMultiSchemaQualifierStruct*',
_data => 'p->u.notQual',
},
},
AR_COND_OP_REL_OP => {
rel_op => {
_type => 'ARMultiSchemaRelOpStruct*',
_data => 'p->u.relOp',
},
},
AR_COND_OP_FROM_FIELD => {
fieldId => {
_type => 'ARMultiSchemaFieldIdStruct',
_data => 'p->u.fieldId',
},
},
},
},
ARMultiSchemaRelOpStruct => {
_min_version => '7.5.0',
oper => {
_type => 'unsigned int',
_data => 'p->operation',
_map => {
AR_REL_OP_EQUAL => '==',
AR_REL_OP_GREATER => '>',
AR_REL_OP_GREATER_EQUAL => '>=',
AR_REL_OP_LESS => '<',
AR_REL_OP_LESS_EQUAL => '<=',
AR_REL_OP_NOT_EQUAL => '!=',
AR_REL_OP_LIKE => 'like',
AR_REL_OP_IN => 'in',
},
},
left => {
_type => 'ARMultiSchemaFieldValueOrArithStruct',
_data => 'p->operandLeft',
},
right => {
_type => 'ARMultiSchemaFieldValueOrArithStruct',
_data => 'p->operandRight',
},
},
ARMultiSchemaFieldValueOrArithStruct => {
_min_version => '7.5.0',
_switch => 'p->tag',
_case => {
AR_FIELD => {
fieldId => {
_type => 'ARMultiSchemaFieldIdStruct',
_data => 'p->u.fieldId',
},
},
AR_VALUE => {
value => {
_type => 'ARValueStruct',
_data => 'p->u.value',
},
},
AR_ARITHMETIC => {
arith => {
_type => 'ARMultiSchemaArithOpStruct*',
_data => 'p->u.arithOp',
},
},
AR_STAT_HISTORY => {
_max_version => '7.5.0',
statHistory => {
_type => 'ARMultiSchemaStatHistoryValue',
_data => 'p->u.statHistory',
},
},
AR_STAT_HISTORY => {
_min_version => '7.6.3',
statHistory => {
_type => 'ARMultiSchemaFuncStatHistoryValue',
_data => 'p->u.statHistory',
},
},
AR_VALUE_SET => {
valueSet => {
_type => 'ARValueList',
_data => 'p->u.valueSet',
},
},
AR_CURRENCY_FLD => {
_min_version => '5.1.0',
_max_version => '7.5.0',
currencyField => {
_type => 'ARMultiSchemaCurrencyPartStruct*',
_data => 'p->u.currencyField',
},
},
AR_CURRENCY_FLD => {
_min_version => '7.6.3',
currencyField => {
_type => 'ARMultiSchemaFuncCurrencyPartStruct*',
_data => 'p->u.currencyField',
},
},
AR_VALUE_SET_QUERY => {
_max_version => '7.5.0',
queryValue => {
_type => 'ARMultiSchemaValueSetQueryStruct*',
_data => 'p->u.valueSetQuery',
},
},
AR_VALUE_SET_QUERY => {
_min_version => '7.6.3',
queryValue => {
_type => 'ARMultiSchemaValueSetFuncQueryStruct*',
_data => 'p->u.valueSetQuery',
},
},
},
},
#ARMultiSchemaArithOpStruct => {
# _min_version => '7.5.0',
# operation => {
# _type => 'unsigned int',
# _data => 'p->operation',
# },
# operandLeft => {
# _type => 'ARMultiSchemaFieldValueOrArithStruct',
# _data => 'p->operandLeft',
# },
# operandRight => {
# _type => 'ARMultiSchemaFieldValueOrArithStruct',
# _data => 'p->operandRight',
# },
#},
ARMultiSchemaCurrencyPartStruct => {
_min_version => '7.5.0',
_max_version => '7.5.0',
fieldId => {
_type => 'ARMultiSchemaFieldIdStruct',
_data => 'p->fieldId',
},
partTag => {
_type => 'unsigned int',
_data => 'p->partTag',
},
currencyCode => {
_type => 'ARCurrencyCodeType',
_data => 'p->currencyCode',
},
},
ARMultiSchemaValueSetQueryStruct => {
_min_version => '7.5.0',
queryFromList => {
_type => 'ARMultiSchemaQueryFromList',
_data => 'p->queryFromList',
},
fieldId => {
_type => 'ARMultiSchemaFieldIdStruct',
_data => 'p->fieldId',
},
qualifier => {
_type => 'ARMultiSchemaQualifierStruct*',
_data => 'p->qualifier',
},
},
ARMultiSchemaStatHistoryValue => {
_min_version => '7.5.0',
queryFromAlias => {
_type => 'ARNameType',
_data => 'p->queryFromAlias',
},
enumVal => {
_type => 'unsigned long',
_data => 'p->enumVal',
},
userOrTime => {
_type => 'unsigned int',
_data => 'p->userOrTime',
},
},
ARMultiSchemaFieldIdList => {
_min_version => '7.5.0',
_num => 'p->numItems',
_list => 'p->listPtr',
_type => 'ARMultiSchemaFieldIdStruct',
},
ARMultiSchemaSortList => {
_min_version => '7.5.0',
_num => 'p->numItems',
_list => 'p->listPtr',
_type => 'ARMultiSchemaSortStruct',
},
ARMultiSchemaSortStruct => {
_min_version => '7.5.0',
fieldId => {
_type => 'ARMultiSchemaFieldIdStruct',
_data => 'p->fieldId',
},
sortOrder => {
_type => 'unsigned int',
_data => 'p->sortOrder',
},
},
ARMultiSchemaFuncStatHistoryValue => {
_min_version => '7.6.3',
queryFromAlias => {
_type => 'ARNameType',
_data => 'p->queryFromAlias',
},
enumVal => {
_type => 'unsigned long',
_data => 'p->enumVal',
},
userOrTime => {
_type => 'unsigned int',
_data => 'p->userOrTime',
},
funcId => {
_type => 'int',
_data => 'p->funcId',
},
},
ARMultiSchemaFuncCurrencyPartStruct => {
_min_version => '7.6.3',
fieldFunc => {
_type => 'ARMultiSchemaFieldFuncStruct',
_data => 'p->fieldFunc',
},
partTag => {
_type => 'unsigned int',
_data => 'p->partTag',
},
currencyCode => {
_type => 'ARCurrencyCodeType',
_data => 'p->currencyCode',
},
},
ARMultiSchemaValueSetFuncQueryStruct => {
_min_version => '7.6.3',
queryFromList => {
_type => 'ARMultiSchemaFuncQueryFromList',
_data => 'p->queryFromList',
},
fieldId => {
_type => 'ARMultiSchemaFieldIdStruct',
_data => 'p->fieldId',
},
qualifier => {
_type => 'ARMultiSchemaQualifierStruct*',
_data => 'p->qualifier',
},
groupBy => {
_type => 'ARMultiSchemaFieldIdList',
_data => 'p->groupBy',
},
having => {
_type => 'ARMultiSchemaFuncQualifierStruct*',
_data => 'p->having',
},
},
ARMultiSchemaFuncQueryFromList => {
_min_version => '7.6.3',
_num => 'p->numItems',
_list => 'p->listPtr',
_type => 'ARMultiSchemaFuncQueryFromStruct',
},
ARMultiSchemaFuncQueryFromStruct => {
_min_version => '7.6.3',
queryFromAlias => {
_type => 'ARNameType',
_data => 'p->queryFromAlias',
},
joinType => {
_type => 'unsigned int',
_data => 'p->joinType',
},
joinQual => {
_type => 'ARMultiSchemaQualifierStruct*',
_data => 'p->joinQual',
},
_switch => 'p->type',
_case => {
AR_MULTI_SCHEMA_SCHEMA_NAME => {
'name' => {
_type => 'ARNameType',
_data => 'p->u.schemaName',
},
},
AR_MULTI_SCHEMA_NESTED_QUERY => {
'extRef' => {
_type => 'ARMultiSchemaNestedFuncQueryStruct*',
_data => 'p->u.nestedQuery',
},
},
AR_MULTI_SCHEMA_RECURSIVE_QUERY => {
'extRef' => {
_type => 'ARMultiSchemaRecursiveFuncQueryStruct*',
_data => 'p->u.recursiveQuery',
},
},
},
},
ARMultiSchemaFuncQualifierStruct => {
_min_version => '7.6.3',
_switch => 'p->operation',
_map => [ 'oper', {
AR_COND_OP_AND => 'and',
StructDef.pl view on Meta::CPAN
AR_COND_OP_NOT => 'not',
AR_COND_OP_REL_OP => 'rel_op',
AR_COND_OP_FROM_FIELD => 'external',
} ],
_case => {
AR_COND_OP_NONE => {
_default => 1,
},
AR_COND_OP_AND => {
left => {
_type => 'ARMultiSchemaFuncQualifierStruct*',
_data => 'p->u.andor.operandLeft',
},
right => {
_type => 'ARMultiSchemaFuncQualifierStruct*',
_data => 'p->u.andor.operandRight',
},
},
AR_COND_OP_OR => {
left => {
_type => 'ARMultiSchemaFuncQualifierStruct*',
_data => 'p->u.andor.operandLeft',
},
right => {
_type => 'ARMultiSchemaFuncQualifierStruct*',
_data => 'p->u.andor.operandRight',
},
},
AR_COND_OP_NOT => {
'not' => {
_type => 'ARMultiSchemaFuncQualifierStruct*',
_data => 'p->u.notQual',
},
},
AR_COND_OP_REL_OP => {
rel_op => {
_type => 'ARMultiSchemaFuncRelOpStruct*',
_data => 'p->u.relOp',
},
},
AR_COND_OP_FROM_FIELD => {
fieldFunc => {
_type => 'ARMultiSchemaFieldFuncStruct',
_data => 'p->u.fieldFunc',
},
},
},
},
ARMultiSchemaNestedFuncQueryStruct => {
_min_version => '7.6.3',
queryFromList => {
_type => 'ARMultiSchemaFuncQueryFromList',
_data => 'p->queryFromList',
},
getListFuncs => {
_type => 'ARMultiSchemaFieldFuncList',
_data => 'p->getListFuncs',
},
qualifier => {
_type => 'ARMultiSchemaQualifierStruct*',
_data => 'p->qualifier',
},
groupBy => {
_type => 'ARMultiSchemaFieldIdList',
_data => 'p->groupBy',
},
having => {
_type => 'ARMultiSchemaFuncQualifierStruct*',
_data => 'p->having',
},
},
ARMultiSchemaFieldFuncList => {
_min_version => '7.6.3',
_num => 'p->numItems',
_list => 'p->listPtr',
_type => 'ARMultiSchemaFieldFuncStruct',
},
ARMultiSchemaFieldFuncStruct => {
_min_version => '7.6.3',
queryFromAlias => {
_type => 'ARNameType',
_data => 'p->queryFromAlias',
},
fieldId => {
_type => 'ARInternalId',
_data => 'p->fieldId',
},
funcId => {
_type => 'int',
_data => 'p->funcId',
},
},
ARMultiSchemaFuncRelOpStruct => {
_min_version => '7.6.3',
operation => {
_type => 'unsigned int',
_data => 'p->operation',
},
operandLeft => {
_type => 'ARMultiSchemaFieldFuncValueOrArithStruct',
_data => 'p->operandLeft',
},
operandRight => {
_type => 'ARMultiSchemaFieldFuncValueOrArithStruct',
_data => 'p->operandRight',
},
},
ARMultiSchemaRecursiveFuncQueryStruct => {
_min_version => '7.6.3',
recursiveSchemaAlias => {
_type => 'ARNameType',
_data => 'p->recursiveSchemaAlias',
},
queryFromList => {
_type => 'ARMultiSchemaFuncQueryFromList',
_data => 'p->queryFromList',
},
getListFuncs => {
_type => 'ARMultiSchemaFieldFuncList',
_data => 'p->getListFuncs',
},
startQual => {
_type => 'ARMultiSchemaQualifierStruct*',
_data => 'p->startQual',
},
recursionQual => {
_type => 'ARMultiSchemaQualifierStruct*',
_data => 'p->recursionQual',
},
levelsToRetrieve => {
_type => 'int',
_data => 'p->levelsToRetrieve',
},
groupBy => {
_type => 'ARMultiSchemaFieldIdList',
_data => 'p->groupBy',
},
having => {
_type => 'ARMultiSchemaFuncQualifierStruct*',
_data => 'p->having',
},
},
ARMultiSchemaFieldFuncValueOrArithStruct => {
_min_version => '7.6.3',
_switch => 'p->tag',
_case => {
AR_FIELD => {
fieldFunc => {
_type => 'ARMultiSchemaFieldFuncStruct',
_data => 'p->u.fieldFunc',
},
},
AR_VALUE => {
value => {
_type => 'ARValueStruct',
_data => 'p->u.value',
},
},
AR_ARITHMETIC => {
arith => {
_type => 'ARMultiSchemaFuncArithOpStruct*',
_data => 'p->u.arithOp',
},
},
AR_STAT_HISTORY => {
statHistory => {
_type => 'ARMultiSchemaFuncStatHistoryValue',
_data => 'p->u.statHistory',
},
},
AR_VALUE_SET => {
valueSet => {
_type => 'ARValueList',
_data => 'p->u.valueSet',
},
},
AR_CURRENCY_FLD => {
_min_version => '5.1.0',
currencyField => {
_type => 'ARMultiSchemaFuncCurrencyPartStruct*',
_data => 'p->u.currencyField',
},
},
AR_VALUE_SET_QUERY => {
queryValue => {
_type => 'ARMultiSchemaValueSetFuncQueryStruct*',
_data => 'p->u.valueSetQuery',
},
},
},
},
ARMultiSchemaFuncArithOpStruct => {
_min_version => '7.6.3',
operation => {
_type => 'unsigned int',
_data => 'p->operation',
},
operandLeft => {
_type => 'ARMultiSchemaFieldFuncValueOrArithStruct',
_data => 'p->operandLeft',
},
operandRight => {
_type => 'ARMultiSchemaFieldFuncValueOrArithStruct',
_data => 'p->operandRight',
},
},
#ARMultiSchemaFieldIdStruct => {
# _min_version => '7.5.0',
# queryFromAlias => {
# _type => 'ARNameType',
# _data => 'p->queryFromAlias',
# },
# fieldId => {
# _type => 'ARInternalId',
# _data => 'p->fieldId',
# },
#},
#ARArchiveInfoStruct => {
# _min_version => '6.0.0',
# _switch => 'p->archiveType',
## _default => 'AR_FIELD_REGULAR',
StructDef.pl view on Meta::CPAN
# 'AR_ARCHIVE_FORM | AR_ARCHIVE_DELETE' => 3,
# AR_ARCHIVE_FILE_XML => 4,
# AR_ARCHIVE_FILE_ARX => 8,
# } ],
# _case => {
# AR_ARCHIVE_NONE => {
# _default => 1,
# },
# AR_ARCHIVE_FORM => {
# formName => {
# _type => 'ARNameType',
# _data => 'p->u.formName',
# },
# },
# AR_ARCHIVE_DELETE => {
# formName => {
# _type => 'ARNameType',
# _data => 'p->u.formName',
# },
# },
# 'AR_ARCHIVE_FORM | AR_ARCHIVE_DELETE' => {
# formName => {
# _type => 'ARNameType',
# _data => 'p->u.formName',
# },
# },
# AR_ARCHIVE_FILE_XML => {
# dirPath => {
# _type => 'char*',
# _data => 'p->u.dirPath',
# },
# },
# AR_ARCHIVE_FILE_ARX => {
# dirPath => {
# _type => 'char*',
# _data => 'p->u.dirPath',
# },
# },
# },
# archiveType => {
# _type => 'unsigned int',
# _data => 'p->archiveType',
# },
# enable => {
# _type => 'unsigned int',
# _data => 'p->enable',
# _map => {
# FALSE => 'false',
# TRUE => 'true',
# },
# },
## archiveTime => {
## _type => 'ARDayStruct',
## _data => 'p->archiveTime',
## },
#
# TmMonthDayMask => {
# _type => 'long',
# _data => 'p->archiveTime.monthday',
# },
# TmWeekDayMask => {
# _type => 'long',
# _data => 'p->archiveTime.weekday',
# },
# TmHourMask => {
# _type => 'long',
# _data => 'p->archiveTime.hourmask',
# },
# TmMinute => {
# _type => 'unsigned int',
# _data => 'p->archiveTime.minute',
# },
#
# query => {
# _type => 'ARQualifierStruct',
# _data => 'p->query',
# },
# archiveFrom => {
# _type => 'ARNameType',
# _data => 'p->archiveFrom',
# },
#},
#ARCharMenuItemStruct => {
# menuLabel => {
# _type => 'ARNameType',
# _data => 'p->menuLabel',
# },
# _switch => 'p->menuType',
# _map => {
# AR_MENU_TYPE_VALUE => 'menuValue',
# AR_MENU_TYPE_MENU => 'childMenu',
# },
# _case => {
# AR_MENU_TYPE_VALUE => {
# menuValue => {
# _type => 'char *',
# _data => 'p->u.menuValue',
# },
# },
# AR_MENU_TYPE_MENU => {
# childMenu => {
## _type => 'ARCharMenuStruct*',
## _data => 'p->u.childMenu',
# _type => 'ARCharMenuList',
# _data => 'p->u.childMenu->u.menuList',
# },
# },
# },
#},
#ARCharMenuStruct => {
# _switch => 'p->menuType',
# _map => 'CharMenuTypeMap',
# _case => {
# AR_CHAR_MENU_LIST => {
# _type => 'ARCharMenuList',
# _data => 'p->u.menuList',
# },
# AR_CHAR_MENU_QUERY => {
# _type => 'ARCharMenuQueryStruct',
# _data => 'p->u.menuQuery',
# },
# AR_CHAR_MENU_FILE => {
# _type => 'ARCharMenuFileStruct',
# _data => 'p->u.menuFile',
# },
# AR_CHAR_MENU_SQL => {
# _type => 'ARCharMenuSQLStruct',
# _data => 'p->u.menuSQL',
# },
# AR_CHAR_MENU_SS => {
# _type => 'ARCharMenuSSStruct',
# _data => 'p->u.menuSS',
# },
# AR_CHAR_MENU_DATA_DICTIONARY => {
# _type => 'ARCharMenuDDStruct',
# _data => 'p->u.menuDD',
# },
# },
#},
#ARInternalIdList => {
# _num => 'p->numItems',
# _list => 'p->internalIdList',
# _type => 'ARInternalId',
#},
#ARWorkflowConnectList => {
# _num => 'p->numItems',
# _list => 'p->workflowConnectList',
# _type => 'ARWorkflowConnectStruct',
#},
#ARWorkflowConnectStruct => {
# _switch => 'p->type',
# _case => {
# AR_WORKFLOW_CONN_NONE => {
# _default => 1,
# },
# AR_WORKFLOW_CONN_SCHEMA_LIST => {
# schemaList => {
# _type => 'ARNameList',
# _data => 'p->u.schemaList',
# },
# },
# },
#},
#ARReferenceStruct => {
# label => {
# _type => 'char *',
# _data => 'p->label',
# },
# description => {
# _type => 'char *',
# _data => 'p->description',
# },
# type => {
# _type => 'unsigned int',
# _data => 'p->type',
# },
#
# _switch => 'p->reference.dataType',
# _map => 'dataType',
# _case => {
# ARREF_DATA_ARSREF => {
# 'name' => {
# _type => 'ARNameType',
# _data => 'p->reference.u.name',
# },
# },
# ARREF_DATA_EXTREF => {
# 'extRef' => {
# _type => 'ARExtReferenceStruct',
# _data => 'p->reference.u.extRef',
# },
# },
# },
#},
#ARExtReferenceStruct => {
# permittedGroups => {
# _type => 'ARInternalIdList',
# _data => 'p->permittedGroups',
# },
# value => {
# _type => 'ARValueStruct',
# _data => 'p->value',
# },
#},
# Structures from "ardbc.h":
#ARVendorFieldList => {
# _num => 'p->numItems',
# _list => 'p->fieldList',
# _type => 'ARVendorFieldStruct',
#},
#ARVendorFieldStruct => {
# fieldName => {
# _type => 'ARNameType',
# _data => 'p->fieldName',
# },
# fieldId => {
# _type => 'ARInternalId',
# _data => 'p->fieldId',
# },
# dataType => {
# _type => 'int',
# _data => 'p->dataType',
# },
#},
);
# perl C:\usr\perl_install\5.8.8\ARSperl\TS\printStructTemplate.pl AR...
#
# x => {
# _type => '',
# _data => '',
# },
# s/.*/$& => {\n\t_type => '',\n\t_data => 'p->u.',\n},/
%TEMPLATES = (
_copy => [
'ARValueStruct' => 'rev_%T( ctrl, h, k, "dataType", &(%L) )',
'ARValueStruct\*' => '%L = MALLOCNN(sizeof(%B)); rev_%B( ctrl, h, k, "dataType", %L )',
'AR\w+' => 'rev_%T( ctrl, h, k, &(%L) )',
'AR\w+\*' => '%L = MALLOCNN(sizeof(%B)); rev_%B( ctrl, h, k, %L )',
'(int|long|unsigned\s+int|unsigned\s+long)' => '%L = SvIV(%R)',
'(float|double)' => '%L = SvNV(%R)',
changes.dat view on Meta::CPAN
TS ars_GetFieldTable performance improvement by using ARGetMultipleFields
TS removed unnecessary second invocation of ARGetField in ars_GetField
TS code cleanup (#ifdef statements) in ARGetFieldCached, ars_GetField, ars_GetFieldByName
!TS appended ARControlStruct pointer address to server key in %ARS::field_cache
(affects only scripts which make explicit use of the internal field_cache structure)
!CL enhanced ARS OO interface to handle custom enum fields
TS fixed return value of ars_Import
TS fixed memory violation in ars_GetListContainer
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
changes.dat view on Meta::CPAN
!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
changes.dat view on Meta::CPAN
JCM modified support-h.template to compile against api3.2
JCM bug fix to ars_Import()
released=8/31/2000 version=1.69
JCM added ars_SetServerInfo() call
JCM added infra/pcpp.pl which is used to convert the xs
and c files into something that will compile against
activestate perl 5.6
JCM modifications to Makefile.PL to ease win32 compilations
JCM fixed bug in support.c:lookUpTypeName
JCM enhanced ars_Export to handle all possible export types
in whatever api we're compiled against
JCM enhanced ars_Import to handle all possible import types
in whatever api we're compiled against
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
changes.dat view on Meta::CPAN
released=2/17/00 version=1.67
JCM ars_SetServerPort() added
JCM fixed bug in ars_GetListSQL()
released=12/3/99 version=1.66
JCM fixed a typo in support.c
released=11/23/99 version=1.65
JCM added better support for decoding filters/activelinks
for arsystem 4.0 (not finished yet)
JCM added support for data type "decimal" when performing
(Set|Create)Entry
released=04/7/99 version=1.6403 BETA
JCM tested/fixed compiling against pre-4.0 apis.
JCM OO: now checks named params to ensure you don't
mis-spell them.
JCM attachment allows specify a 'name' hash key so you can
customize the name that appears in the attachment field
in the usertool. (Nick Stoughton {NickS at ISRWORLD.com})
JCM OO: form->setSort method added
changes.dat view on Meta::CPAN
JCM bug fix to GetListSchema routine
released=02/20/97 version=1.44
JCM added some minor code to aid in decoding qualifier
structs. added some examples of decoding them.
released=02/18/97 version=1.42
JWM added destructors for the ARS package that will correctly
call ARTermination when the package is unloaded (when your
script exits).
JWM fixed minor type casting problem that prevented compilation
on HP-UX
JCM compiled with -Wall and cleaned up some suspicious code.
released=02/17/97 version=1.41
JCM added NT routines to html doc
JCM fixed a few compile-time problems
released=02/13/97 version=1.4
JCM re-organized documentation and web pages
JCM added NT (notifier) functions
example/ChangePassword.pl view on Meta::CPAN
#
# 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.
#
use ARS;
use strict;
example/Dump_Setup.pl view on Meta::CPAN
@admin_ext = ars_GetListAdminExtension($c);
# Warning! this might make several names map to the same file
sub name_to_path {
my $name = shift;
$name =~ s/ /_/g;
$name =~ s/\//:/g;
return $name;
}
sub dump_type {
my ($path, $type, $names) = @_;
if (! -d "$path") {
mkdir "$path", $perm || die "can't create directory $path";
mkdir "$path/RCS", $perm || die "can't create directory $path/RCS";
}
foreach $name (@$names) {
$val = ars_Export($c,"",$type,$name);
$val =~ s/^#.*/#/gm; # get rid of comments with export date
$name = name_to_path($name);
open DUMP, "> $path/$name" || die "can't write file $path/$name";
print DUMP $val;
close DUMP;
$name =~ s/'/'\\''/;
system("$ci -l -q '$path/$name'");
}
}
dump_type("$path/schema", "Schema", \@schema);
dump_type("$path/active", "Active_Link", \@active);
dump_type("$path/filter", "Filter", \@filter);
dump_type("$path/escalation", "Escalation", \@escal);
dump_type("$path/menu", "Char_Menu", \@menu);
dump_type("$path/admin_ext", "Admin_Ext", \@admin_ext);
example/Dump_Users_OO.pl view on Meta::CPAN
#
# Revision 1.1 1999/05/05 19:57:40 rgc
# Initial revision
#
use strict;
use ARS;
require Carp;
sub mycatch {
my $type = shift;
my $msg = shift;
my $trace = shift;
print "i caught an exception:\ntype=$type msg=$msg\ntraceback:\n$trace\n";
exit;
}
my $LoginNameField = "Login name"; # earlier versions of ars used "Login Name"
my $connection = new ARS (-server => shift,
-username => shift,
-password => shift,
-catch => { ARS::AR_RETURN_ERROR => "main::mycatch" },
-ctrl => undef,
example/GetServerStatistics.pl view on Meta::CPAN
if(!defined($password)) {
print "Usage: $0 [server] [username] [password]\n";
exit 0;
}
my $c = ars_Login($server, $username, $password);
die "login failed: $ars_errstr" unless defined($c);
my @rev_ServerStats;
foreach my $stype (keys %ARServerStats) {
$rev_ServerStats[$ARServerStats{$stype}] = $stype;
}
print "requesting: START_TIME($ARServerStats{'START_TIME'}) CPU($ARServerStats{'CPU'})\n";
my %stats = ars_GetServerStatistics($c,
$ARServerStats{'START_TIME'},
$ARServerStats{'CPU'} );
die "ars_GetServerStatistics: $ars_errstr" unless %stats;
foreach my $stype (keys %stats) {
if($rev_ServerStats[$stype] =~ /TIME/) {
print $rev_ServerStats[$stype]." = <".localtime($stats{$stype})."> (".$stats{$stype}.")\n";
} else {
print $rev_ServerStats[$stype]." = <".$stats{$stype}.">\n";
}
}
ars_Logoff($c);
exit(0);
example/Show_ALink.pl view on Meta::CPAN
print "Execute On: ".DecodeExecMask($a->{executeMask})."\n";
print "Field: ".$a->{field}."\n"; # XXX - display only when needed (execmask)
print "Display List:\n";
foreach $display (@{$a->{displayList}}) {
printl 1, "Display Name: ".$display->{displayTag}."\n";
printl 2, "x corrd: ".$display->{x}."\n";
printl 2, "y coord: ".$display->{y}."\n";
printl 2, "Visible?: ".$display->{option}."\n";
printl 2, "Button Label: ".$display->{label}."\n";
printl 2, "Type: ".$display->{type}."\n";
}
print "\n";
#print "Qualification: ".$a->{query}."\n";
$dq = ars_perl_qualifier($ctrl, $a->{query});
$dq = undef if(isempty($dq));
if(defined($dq)) {
if(defined($a->{'schema'})) {
example/WhoUsesIt.pl view on Meta::CPAN
@menus = ars_GetListCharMenu($ctrl, 0);
if($#menus != -1) {
foreach $menu (@menus) {
print "Searching: $menu\n" if $debug;
($menuDef = ars_GetCharMenu($ctrl, $menu)) ||
die "ars_GetCharMenu: $ars_errstr";
#next unless ($menu eq "PT-Assignees");
#use Data::Dumper; print Dumper($menuDef); exit 0;
# 3 is legacy.
if( ($menuDef->{menuType} == 3) || ($menuDef->{menuType} =~ /format_quotes/i) ) {
print "\tIs type File (points to ".qq{"$menuDef->{menuFile}{filename}"}.")\n" if $debug;
if ($menuDef->{menuFile}{filename} =~ /$opt_M/) {
$users{$menu} = $1;
}
}
}
foreach (sort keys %users) {
print "\t$_\n";
}
} else {
print "No menu's available!\n$ars_errstr\n";
example/ars_GetListEntry.pl view on Meta::CPAN
my ( $server, $user, $password ) = ( shift, shift, shift );
#Logging in to the server
( my $ctrl = ars_Login( $server, $user, $password ) )
|| die "ars_Login: $ars_errstr";
# Define form and fields - these may have different names on your server
my $schema = "User";
my $login_name = "Login Name";
my $lic_type = "License Type";
my $full_name = "Full Name";
( my %fids = ars_GetFieldTable( $ctrl, $schema ) )
|| die "ars_GetFieldTable: $ars_errstr";
( my $qual = ars_LoadQualifier( $ctrl, $schema, "(1 = 1)" ) )
|| die "ars_LoadQualifier: $ars_errstr";
# basic format: allow the server to provide sorting order
# and query list fields.
example/ars_GetListEntry.pl view on Meta::CPAN
print "Testing: basic format.\n";
( my @entries = ars_GetListEntry( $ctrl, $schema, $qual, 0, 0 ) )
|| die "ars_GetListEntry: $ars_errstr";
for ( my $i = 0 ; $i < $#entries ; $i += 2 ) {
printf( "%s %s\n", $entries[$i], $entries[ $i + 1 ] );
}
# another format: specify a sorting order.
# sort by license type, ascending.
print "Testing: basic + sorting format.\n";
( my @sorted_entries =
ars_GetListEntry( $ctrl, $schema, $qual, 0, 0, $fids{$login_name}, 1 ) )
|| # sort on Login Name, ascending
die "ars_GetListEntry: $ars_errstr";
for ( my $i = 0 ; $i < $#sorted_entries ; $i += 2 ) {
printf( "%s %s\n", $sorted_entries[$i], $sorted_entries[ $i + 1 ] );
html/changes.html view on Meta::CPAN
<tr bgcolor='#dddddd'><td width='10%'>(CL)</td><td width='90%'><font color='red'>enhanced ARS OO interface to handle custom enum fields
</font></td></tr>
<tr bgcolor='#eeeeee'><td width='10%'>(TS)</td><td width='90%'><font color='black'>fixed return value of ars_Import
</font></td></tr>
<tr bgcolor='#dddddd'><td width='10%'>(TS)</td><td width='90%'><font color='black'>fixed memory violation in ars_GetListContainer
</font></td></tr>
<tr bgcolor='#eeeeee'><td width='10%'>(TS)</td><td width='90%'><font color='black'>implemented ars_qualifier_ptr function (inverse of ars_perl_qualifier)
</font></td></tr>
<tr bgcolor='#dddddd'><td width='10%'>(TS)</td><td width='90%'><font color='black'>added ownerObjList parameter to ars_GetListContainer
</font></td></tr>
<tr bgcolor='#eeeeee'><td width='10%'>(TS)</td><td width='90%'><font color='black'>fixed AR_SERVER_INFO type identification in infra/exsi.pl
</font></td></tr>
<tr bgcolor='#dddddd'><td width='10%'>(TS)</td><td width='90%'><font color='black'>updated version numbers in INSTALLATION
</font></td></tr>
<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)
html/changes.html view on Meta::CPAN
<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
html/changes.html view on Meta::CPAN
<td width='50%'>Version: <B>1.69
</B></td>
</tr></table></td>
</tr><tr bgcolor='#eeeeee'><td width='10%'>(JCM)</td><td width='90%'><font color='black'>added ars_SetServerInfo() call
</font></td></tr>
<tr bgcolor='#dddddd'><td width='10%'>(JCM)</td><td width='90%'><font color='black'>added infra/pcpp.pl which is used to convert the xs
and c files into something that will compile against activestate perl 5.6 </font></td></tr>
<tr bgcolor='#eeeeee'><td width='10%'>(JCM)</td><td width='90%'><font color='black'>modifications to Makefile.PL to ease win32 compilations
</font></td></tr>
<tr bgcolor='#dddddd'><td width='10%'>(JCM)</td><td width='90%'><font color='black'>fixed bug in support.c:lookUpTypeName
</font></td></tr>
<tr bgcolor='#eeeeee'><td width='10%'>(JCM)</td><td width='90%'><font color='black'>enhanced ars_Export to handle all possible export types
in whatever api we're compiled against </font></td></tr>
<tr bgcolor='#dddddd'><td width='10%'>(JCM)</td><td width='90%'><font color='black'>enhanced ars_Import to handle all possible import types
in whatever api we're compiled against </font></td></tr>
<tr bgcolor='#eeeeee'><td width='10%'>(JCM)</td><td width='90%'><font color='black'>typo fix in ARS.xs for perl5.6 compatibility
</font></td></tr>
<tr bgcolor='#dddddd'><td width='10%'>(JCM)</td><td width='90%'><font color='black'>documenation update (ars_Import)
</table></td></tr></table>
<P>
<TABLE CELLSPACING='0'
html/changes.html view on Meta::CPAN
<TD width='100%'>
<TABLE CELLSPACING='0' CELLPADDING='3' WIDTH='100%' BORDER='0'
BGCOLOR='lightblue'>
<tr><td colspan='2'>
<table width='100%' border='0'><tr>
<td width='50%'>Released: <B>11/23/99</B></td>
<td width='50%'>Version: <B>1.65
</B></td>
</tr></table></td>
</tr><tr bgcolor='#eeeeee'><td width='10%'>(JCM)</td><td width='90%'><font color='black'>added better support for decoding filters/activelinks
for arsystem 4.0 (not finished yet) </font></td></tr>
<tr bgcolor='#dddddd'><td width='10%'>(JCM)</td><td width='90%'><font color='black'>added support for data type "decimal" when performing
(Set|Create)Entry </table></td></tr></table>
<P>
<TABLE CELLSPACING='0'
CELLPADDING='2'
WIDTH='100%'
BORDER='0'
BGCOLOR='black'>
html/changes.html view on Meta::CPAN
<TD width='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>02/18/97</B></td>
<td width='50%'>Version: <B>1.42
</B></td>
</tr></table></td>
</tr><tr bgcolor='#eeeeee'><td width='10%'>(JWM)</td><td width='90%'><font color='black'>added destructors for the ARS package that will correctly
call ARTermination when the package is unloaded (when your script exits). </font></td></tr>
<tr bgcolor='#dddddd'><td width='10%'>(JWM)</td><td width='90%'><font color='black'>fixed minor type casting problem that prevented compilation
on HP-UX </font></td></tr>
<tr bgcolor='#eeeeee'><td width='10%'>(JCM)</td><td width='90%'><font color='black'>compiled with -Wall and cleaned up some suspicious code.
</table></td></tr></table>
<P>
<TABLE CELLSPACING='0'
CELLPADDING='2'
WIDTH='100%'
html/copying.html view on Meta::CPAN
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.<p>
</dl>
Also add information on how to contact you by electronic and paper mail.<p>
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:<p>
<dl>
<dd><tt>Gnomovision version 69, Copyright (C) 19yy name of author<br>
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.<br>
This is free software, and you are welcome to redistribute it<br>
under certain conditions; type `show c' for details.<p></tt>
</dl>
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, the commands you use may
be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program.<p>
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary. Here is a sample; alter the names:<p>
html/debug.html view on Meta::CPAN
will probably work. Debugging ARS involves switching between
gdb and the perl debugger. When I'm in the perl debugger, I use
control-c to send a SIGINT and return to gdb. The function
names for ARSperl calls will be a little wierd. You can look in
ARS.c to see what they are. Make sure you keep ARS.c in
place so the debugger can find it! <P>
Here is an example debugging session:
<PRE>
152 cnu(11:13:13)~/ARSperl/ARSperl/example> gdb /usr/local/bin/perl
GDB is free software and you are welcome to distribute copies of it
under certain conditions; type "show copying" to see the conditions.
There is absolutely no warranty for GDB; type "show warranty" for details.
GDB 4.16 (sparc-sun-solaris2.3),
Copyright 1996 Free Software Foundation, Inc...
(gdb) set args -d GetField.pl remedyserver jmurphy mypass User 1
(gdb) run
Starting program: /usr/local/bin/perl -d GetField.pl remedyserver jmurphy mypass User 1
Stack dump during die enabled outside of evals.
Loading DB routines from perl5db.pl patch level 0.94
Emacs support available.
html/manual/OO/connection.html view on Meta::CPAN
$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 => scalar timestamp,
-schematype => scalar,
-name => 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:
<table border="1">
<tr><td>Value</td><td>Meaning</td></tr>
<tr><td>ARS::AR_LIST_SCHEMA_ALL</td><td>get list of all schemas</td></tr>
<tr><td>ARS::AR_LIST_SCHEMA_REGULAR</td><td> get list of all regular
schemas</td></tr>
<tr><td>ARS::AR_LIST_SCHEMA_JOIN </td><td> get list of all join schemas </td></tr>
<tr><td>ARS::AR_LIST_SCHEMA_VIEW </td><td> get list of all view schemas </td></tr>
<tr><td>ARS::AR_LIST_SCHEMA_UPLINK </td><td> get list of all schemas
depending </td></tr>
html/manual/OO/form.html view on Meta::CPAN
field nameD. Eventually, it will obey the VUI you specified.
<P>
<DT><A NAME="getEnumValues"><B>getEnumValues()</B></A>
<PRE>
@vals = $f->getEnumValues(-field => scalar string);
</PRE>
This function returns a list of enumeration values (labels)
for a given field. If the field is not an enumeration field,
an exception is thrown (type=ERROR, num=81006).
<P>
<DT><A NAME="getFieldType"><B>getFieldType()</B></A>
<PRE>
$type = $f->getFieldType(-name => scalar string,
-id => scalar string);
</PRE>
This an "internal" function that is used to retrieve the datatype of a
particular field. You must specify one of the parameters. If you
specify both, the -id parameter is ignore in favor of the -name
parameer. Eventually, it will obey the VUI you specified.
<P>
<DT><A NAME="create"><B>create()</B></A>
<PRE>
$id = $f->create(-values => { field1 => value1, ... });
</PRE>
This function allows you to create a new entry in this form. You can
specify field name to field value mappings with out regard for the
field ID or enumeration types. Behind the scenes magic occurs to hide
this from you. <P>
Eventually, it will obey the VUI you specified.
<P>
In order to create an entry with an attachment, you should use the
following format:
<PRE>
$id = $f->create(-values => {
"Attachment Field Name" => { file => scalar filename,
html/manual/OO/form.html view on Meta::CPAN
</PRE>
This method allows you to set the field values of an existing entry. It
currently does not obey the VUI setting. You may specify the
enumeration field text instead of the enumeration value. In the future,
you will have the option of specifying either.
<P>
<DT><A NAME="merge"><B>merge()</B></A>
<PRE>
$f->merge(-type => numeric value,
-values => { field1 => value1, ...});
</PRE>
This method allows you to "merge" the given fields/values into
a form. The merge operation is fairly powerful, allowing you
to bypass the usual pattern, "not-null", etc, checks that are
enforced on set() and create() operations. In addition,
the merge() operation allows you to over-write existing entries
(including their diary fields). This call
currently does not obey the VUI setting. You may specify the
html/manual/ars_APIVersion.html view on Meta::CPAN
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>
ARSperl Programmer's Manual
</title>
<style type="text/css">
/*<![CDATA[*/
body.c2 {background-color: rgb(255, 255, 255);}
dt.c1 {font-weight: bold}
/*]]>*/
</style>
</head>
<body class="c2">
<h2>
<code>$version = ars_APIVersion()</code>
</h2>
html/manual/ars_CreateEntry.html view on Meta::CPAN
</head>
<body style="background-color: rgb(255, 255, 255);">
<h2><code>ars_CreateEntry(ctrl, schema, field_id1, value1,
...)</code></h2>
This function creates a new entry (row) in the schema. This is the same
as ``submitting a new ticket''. Pairs of field ids and values should
follow the schema name. Data types are automatically converted.
<dl>
<dt><b>On success</b></dt>
<dd> Returns the new entry id. </dd>
<dt><b>On failure</b></dt>
<dd> Returns <code>undef</code>. </dd>
html/manual/ars_DateToJulianDate.html view on Meta::CPAN
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>
ARSperl Programmer's Manual
</title>
<style type="text/css">
/*<![CDATA[*/
dt.c1 {font-weight: bold}
p.c1 {font-style: italic}
/*]]>*/
</style>
</head>
<body>
<h2>
<code>ars_DateToJulianDate(control, year, month, day)</code>
</h2>
html/manual/ars_ExecuteProcess.html view on Meta::CPAN
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>
ARSperl Manual - ars_ExecuteProcess
</title>
<style type="text/css">
/*<![CDATA[*/
body {
background-color: #FFFFFF;
}
dt.c1 {font-weight: bold}
p.c1 {font-style: italic}
/*]]>*/
</style>
</head>
<body>
html/manual/ars_Export.html view on Meta::CPAN
<HTML>
<HEAD>
<TITLE>ARSperl Programmer's Manual</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF">
<H2><CODE>ars_Export(ctrl, displayTag, vuiType, type1, name1, type2, name2, ...)</CODE></H2>
Returns a scalar consisting of the export text for the
requested item name of the given type. Valid types are:
<P>
<UL>
<LI> "schema"
<LI> "schema_defn"
<LI> "schema_view"
<LI> "schema_mail"
<LI> "filter"
<LI> "active_link"
<LI> "admin_ext"
<LI> "char_menu"
html/manual/ars_Export.html view on Meta::CPAN
<code>vuiType</code> is one of:<P>
<PRE>
&ARS::AR_VUI_TYPE_NONE (the default)
&ARS::AR_VUI_TYPE_WINDOWS (fields in ARSystem Windows User Tool)
&ARS::AR_VUI_TYPE_WEB (fields in view can be adjusted)
&ARS::AR_VUI_TYPE_WEB_ABS_POS (fields in view are fixed)
&ARS::AR_VUI_TYPE_WIRELESS (undocumented?)
</PRE><P>
Note that note all of the above types are available in earlier
versions of ARSystem. The above list is valid as of ARSystem v4.5. <P>
It's recommended that if you want to export schema definitions you
should use "<code>schema</code>" and not use the other
<code>schema_*</code> types. <P> If you are curious about what
non-obvious types are used for, you should read the
<U>ARSystem Programmers Manual</U>.
<P>
<DL>
<DT><B>On success</B><DD>
returns a scalar string
<DT><B>On failure</B><DD>
returns undef
</DL>
<P>
html/manual/ars_GetClientCharSet.html view on Meta::CPAN
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>
ARSperl Programmer's Manual
</title>
<style type="text/css">
/*<![CDATA[*/
dt.c1 {font-weight: bold}
/*]]>*/
/*<![CDATA[*/
p.c1 {font-style: italic}
/*]]>*/
</style>
</head>
<body>
<h2>
html/manual/ars_GetEntry.html view on Meta::CPAN
</HEAD>
<BODY BGCOLOR="#FFFFFF">
<H2><CODE>ars_GetEntry(ctrl,schema,entry_id,...)</CODE></H2>
This function returns a hash (associative array) of field ids and
values for a given schema and entry id. If you specify any
field ids after the <CODE>entry_id</CODE> parameter, only the values
for those fields will be returned, otherwise all field id value pairs
are returned. All field values are converted into numeric or string
values, except for the diary type. The diary field type is encoded
as an array of hashes. Each hash has a timestamp, user and value
field. <P>
<DL>
<DT><B>On success</B><DD>
Returns a hash. The keys of the hash are the field ids and
the values are the field values.
<DT><B>On failure</B><DD>
Returns <CODE>undef</CODE>.
</DL>
html/manual/ars_GetEntryBLOB.html view on Meta::CPAN
<HTML>
<HEAD>
<TITLE>ARSperl Manual - ars_GetEntryBLOB</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF">
<H2><CODE>ars_GetEntryBLOB(ctrl,schema,entry_id,field_id,locType,locFile)</CODE></H2>
This function retrieves an attachment from the specified schema
entry. The field ID specified should be an attachment field type. The
<code>locType</code> parameter can be used to specify whether you want
the attachment returned incore (ARS::AR_LOC_BUFFER) or written to a file
(ARS::AR_LOC_FILENAME). If you choose to write it to a file, you must
specify the <CODE>locFile</CODE> parameter. <P>
<DL>
<DT><B>On success</B><DD>
returns 1 if locType == AR_LOC_FILENAME <BR>
returns a scalar buffer if locType == AR_LOC_BUFFER <BR>
<DT><B>On failure</B><DD>
html/manual/ars_GetListContainer.html view on Meta::CPAN
<PRE>
<H2><CODE>ars_GetListContainer(
ctrl, changedSince=0, attributes=0, # standard
[ ownerObjList ], # OPTIONAL
containerType1,containerType2,...) # OPTIONAL</CODE></H2>
</PRE>
<P>
Retrieves a list of containers on the specified server. You can retrieve all
(accessible) containers or limit the list to containers of a particular type
or containers modified after a specified time.</P>
<P> See also:
<A HREF="ds_getlistcontainer_hash.html">GetListContainer Hash Values</A>.</P>
<DL>
<DT><CODE>[ ownerObjList ]</CODE></DT>
<DD> is an optional array reference; the list is a list of HASH references. These hash
references must contain a <i>type</i> and an <i>ownerName</i> parameter. The <i>type</i>
must be "none", "all" or "schema". If <i>type</i> is "schema", the <i>ownerName</i> contains
the name of the owning schema; otherwise the <i>ownerName</i> should be an empty string
(see example below).</DD>
<DT>attributes</DT>
<DD>Specify &ARS::AR_HIDDEN_INCREMENT for this parameter to retrieve both
visible and hidden containers. Specify NULL for this parameter to retrieve only
visible containers.</DD>
<DT>containerTypes</DT>
<DD>Specify a list of values indicating the container types to retrieve.
Values are:
<ul><table width =" 75%">
<tr><td><B>Value</B></td><td><B>Meaning</B></td></tr>
<tr><td>0</td><td>Retrieve all container types (ARCON_ALL).</td></tr>
<tr><td>1</td><td>Retrieve all guide containers (ARCON_GUIDE).</td></tr>
<tr><td>2</td><td>Retrieve all application containers (ARCON_APP).</td></tr>
<tr><td>3</td><td>Retrieve all packing list containers (ARCON_PACK).</td></tr>
<tr><td>4</td><td>Retrieve all filter guide containers (ARCON_FILTER_GUIDE).</td></tr>
<tr><td>5</td><td>Retrieve all web service containers (ARCON_WEBSERVICE).</td></tr>
</table></ul></DD>
</DL>
<DL>
<DT><B>On success</B></DT>
<DD>Returns an array of HASH references.</DD>
html/manual/ars_GetListContainer.html view on Meta::CPAN
<PRE>
@list = ars_GetListContainer($ctrl, 0, &ARS::AR_HIDDEN_INCREMENT, &ARS::ARCON_GUIDE);
die "$ars_errstr" if $ars_errstr;
</PRE>
<P>Example 2 (retrieve all globally owned containers plus all containers of a specific schema):</P>
<PRE>
@list = ars_GetListContainer($ctrl, 0, &ARS::AR_HIDDEN_INCREMENT, [
{type => 'all', ownerName => ''},
{type => 'schema', ownerName => 'Sample:Schema'},
] );
die "$ars_errstr" if $ars_errstr;
</PRE>
<P>
<HR WIDTH="30%">
<P>
<A HREF="toc.html"><IMG ALT="<--" SRC="arrow.gif" ALIGN=CENTER> Table of Contents </A>
<p>
<address>