Hello all,
Can someone please provide me with some real-life samples on how to (properly) write a C ARDBC Plug-in for Remedy (I've also tried getemployeedata.c) ? So far I've read the C-API-Ref-710, used the ardbcskl.c and headers from the samples directory and implemented the ARDBCGetListSchemas method successfully. I'm having trouble implementing the ARDBCGetMultipleFields method, which is not showing all the fields I insert to the array mapping->mappingList. Only the first one is shown. Please find below the source I'm trying to use: ARPLUGIN_EXPORT int ARDBCGetMultipleFields( void *object, /* IN; plug-in instance */ ARCompoundSchema *schema, /* IN; form containing the data */ ARFieldMappingList *mapping,/* OUT; list of fields */ ARFieldLimitList *limit, /* OUT; corresponding field limits */ ARUnsignedIntList *dataType,/* OUT; corresponding data types */ ARStatusList *status /* OUT; status of the operation */ ) { FILE * pFile; pFile = fopen ("myfile.txt","a"); if (schema->schemaType == AR_SCHEMA_VENDOR && strcmp(schema->u.vendor.tableName, FORM_NAME) == 0) { mapping->numItems = 3; mapping->mappingList = (ARFieldMappingStruct *) malloc(sizeof(ARFieldMappingStruct) * mapping->numItems); if (mapping->mappingList == NULL) return AR_RETURN_ERROR; mapping->mappingList[0].fieldType = AR_FIELD_VENDOR; strcpy(mapping->mappingList[0].u.vendor.fieldName, "file_id"); /* this is shown OK */ mapping->mappingList[1].fieldType = AR_FIELD_VENDOR; strcpy(mapping->mappingList[1].u.vendor.fieldName, "file_name"); /* this is not */ mapping->mappingList[2].fieldType = AR_FIELD_VENDOR; strcpy(mapping->mappingList[2].u.vendor.fieldName, "file_date"); if (pFile!=NULL) { fprintf (pFile, "-//-\r\n"); fprintf (pFile, "%s\r\n", mapping->mappingList[0].u.vendor.fieldName); fprintf (pFile, "%s\r\n", mapping->mappingList[1].u.vendor.fieldName); fprintf (pFile, "%s\r\n", mapping->mappingList[2].u.vendor.fieldName); /* all these fields appear filled in on the log file I'm creating at runtime */ } limit->numItems = 3; limit->fieldLimitList = (ARFieldLimitStruct *) calloc(limit->numItems, sizeof(ARFieldLimitStruct)); if (limit->fieldLimitList == NULL) return AR_RETURN_ERROR; limit->fieldLimitList[0].dataType = AR_DATA_TYPE_CHAR; limit->fieldLimitList[0].u.charLimits.maxLength = 20; limit->fieldLimitList[0].u.charLimits.menuStyle = AR_MENU_APPEND; limit->fieldLimitList[0].u.charLimits.qbeMatchOperation = AR_QBE_MATCH_ANYWHERE; limit->fieldLimitList[0].u.charLimits.fullTextOptions = AR_FULLTEXT_OPTIONS_NONE; /* from this point on, nothing is recognized on Remedy, but is show on the log file (?) */ limit->fieldLimitList[1].dataType = AR_DATA_TYPE_CHAR; limit->fieldLimitList[1].u.charLimits.maxLength = 21; limit->fieldLimitList[1].u.charLimits.menuStyle = AR_MENU_APPEND; limit->fieldLimitList[1].u.charLimits.qbeMatchOperation = AR_QBE_MATCH_ANYWHERE; limit->fieldLimitList[1].u.charLimits.fullTextOptions = AR_FULLTEXT_OPTIONS_NONE; limit->fieldLimitList[2].dataType = AR_DATA_TYPE_CHAR; limit->fieldLimitList[2].u.charLimits.maxLength = 22; limit->fieldLimitList[2].u.charLimits.menuStyle = AR_MENU_APPEND; limit->fieldLimitList[2].u.charLimits.qbeMatchOperation = AR_QBE_MATCH_ANYWHERE; limit->fieldLimitList[2].u.charLimits.fullTextOptions = AR_FULLTEXT_OPTIONS_NONE; if (pFile!=NULL) { fprintf (pFile, "---\r\n"); fprintf (pFile, "%d\r\n", limit->fieldLimitList[1].dataType); fprintf (pFile, "%d\r\n", limit->fieldLimitList[1].u.charLimits.maxLength); fprintf (pFile, "%d\r\n", limit->fieldLimitList[1].u.charLimits.menuStyle); } /* fill the data type list */ dataType->numItems = 3; dataType->intList = (unsigned int *) malloc(sizeof(unsigned) * dataType->numItems); if (dataType->intList == NULL) return AR_RETURN_ERROR; dataType->intList[0] = AR_DATA_TYPE_CHAR; dataType->intList[1] = AR_DATA_TYPE_CHAR; dataType->intList[2] = AR_DATA_TYPE_CHAR; if (pFile!=NULL) { fprintf (pFile, "---\r\n"); fprintf (pFile, "%d\r\n", dataType->intList[0]); fprintf (pFile, "%d\r\n", dataType->intList[1]); fprintf (pFile, "%d\r\n", dataType->intList[2]); fclose (pFile); } } return AR_RETURN_OK; } Kind regards, Paulo Moreira _______________________________________________________________________________ UNSUBSCRIBE or access ARSlist Archives at www.arslist.org Platinum Sponsor: www.rmsportal.com ARSlist: "Where the Answers Are"