in case you cant find any examples, here is a snippet of code where I pretty much did what whipping boy is talking about.
lpDS->cErrorStatus = '0';
if( JDB_InitBhvr(lpBhvrCom, &hUser, (char *) NULL, JDEDB_COMMIT_AUTO) != JDEDB_PASSED ) {
jdeErrorSet(lpBhvrCom, lpVoid, (ID) 0, "139F", (LPVOID) NULL);
idReturn = ER_ERROR;
goto FunctionCleanUp;
}
jdeNIDcpy(dsUbeStructure.szReport, "R5641EX1A");
jdeNIDcpy(dsUbeStructure.szVersion, "ACME0001");
if( (jdeGetHostName(dsUbeStructure.szMachineKey,16,1) != 0) ||
(!GetLocalEnvironmentName(dsUbeStructure.szEnhv,11)) ) {
idReturn = ER_ERROR;
jdeSetGBRError(lpBhvrCom, lpVoid, (ID)0, "0002");
goto FunctionCleanUp;
}
/* changes 16 bit value to 32 bit value*/
dsUbeStructure.idRunTime = (GLRTID)lpBhvrCom->hDlg << 16; /* no longer needed ????? */
dsUbeStructure.bSynchFlag = TRUE;
dsUbeStructure.bPreview = FALSE;
dsUbeStructure.bBatchFlag = TRUE;
/* set ube inter-connect */
strcpy( dsUbeInterCon.szCompany, lpDS->szCompany );
strcpy( dsUbeInterCon.szShippingBP, lpDS->szShippingBP );
strcpy( dsUbeInterCon.szRegion, lpDS->szRegion );
strcpy( dsUbeInterCon.szGlGroup, lpDS->szGlGroup );
strcpy( dsUbeInterCon.szGroup, lpDS->szGroup );
strcpy( dsUbeInterCon.szSubGroup, lpDS->szSubGroup );
MathCopy( &dsUbeInterCon.mnPlantOfMfg, &lpDS->mnPlantOfMfg );
dsUbeInterCon.cOrderPolicyCode = lpDS->cOrderPolicyCode;
MathCopy( &dsUbeInterCon.mnSortSelectionSequence, &lpDS->mnSortSelectionSequence );
strcpy( dsUbeInterCon.szEdiBatchNumber, lpDS->szEdiBatchNumber );
/* launch ube */
idJDEDBReturn = jdeLaunchUBEEx(hUser, &dsUbeStructure, (void *)&dsUbeInterCon, lpBhvrCom);
if(idJDEDBReturn != JDEDB_PASSED) {
idReturn = ER_ERROR;
jdeSetGBRError(lpBhvrCom, lpVoid, (ID)0, "0002");
goto FunctionCleanUp;
}