Alpinist
Active Member
Has anyone used the jdeLaunchUBEEx to successfully launch a custom UBE from a BSFN. I included my code below and the input variables are populated when it calls the API, yet the UBE is not submitted.
I've checked OCM's and the BSFN compiles. I've looked at example's of standard E1 functions that do this, and I don't see any fundamental differences, but I must be missing something.
Any ideas would be most appreciated.
I'm working in E1, 8.12, with 8.97
Thank you.
<font class="small">Code:</font><hr /><pre> #include <jde.h>
#define b5543pop_c
#include <b5543pop.h>
/**************************************************************************
* Business Function: SubmitR5543POPUBE
*
* Description: Submit R55POPUBE
*
* Parameters:
* LPBHVRCOM lpBhvrCom Business Function Communications
* LPVOID lpVoid Void Parameter - DO NOT USE!
* LPDSD554 lpDS Parameter Data Structure Pointer
*
*************************************************************************/
JDEBFRTN (ID) JDEBFWINAPI SubmitR5543POPUBE (LPBHVRCOM lpBhvrCom, LPVOID lpVoid, LPDSD5543POP lpDS)
{
/************************************************************************
* Variable declarations
************************************************************************/
ID idReturnCode = ER_SUCCESS;
ID idJDEDBResult = 0;
/************************************************************************
* Declare structures
************************************************************************/
DSRIR5543POP ds5543pop = {0};
/************************************************************************
* Declare pointers
************************************************************************/
HUSER hUser = (HUSER) NULL;
PUBEVAR pUbeVar = (PUBEVAR)NULL;
/************************************************************************
* Check for NULL pointers
************************************************************************/
if ((lpBhvrCom == (LPBHVRCOM) NULL) ||
(lpVoid == (LPVOID) NULL) ||
(lpDS == (LPDSD5543POP) NULL))
{
jdeErrorSet (lpBhvrCom, lpVoid, (ID) 0, _J("4363"), (LPVOID) NULL);
return ER_ERROR;
}
idJDEDBResult = JDB_InitBhvr (lpBhvrCom,
&hUser,
(JCHAR *)NULL,
JDEDB_COMMIT_AUTO);
if (idJDEDBResult == JDEDB_FAILED)
{
jdeErrorSet(lpBhvrCom, lpVoid, (ID) 0, _J("078S"), (LPVOID) NULL);
return (ER_ERROR);
}
/************************************************************************
* Set pointers
************************************************************************/
pUbeVar = jdeAlloc(COMMON_POOL, sizeof(struct tagUBEVAR),MEM_ZEROINIT);
/************************************************************************
* Main Processing
************************************************************************/
if (pUbeVar != (PUBEVAR)NULL)
{
memset((void *)pUbeVar, (int)_J('\0'), sizeof(pUbeVar));
/*--------------------------------------------------------------------
* Load Ube Structure
*-------------------------------------------------------------------*/
pUbeVar->bPreview = FALSE;
jdeNIDcpy((JCHAR *)pUbeVar->szReport,(const JCHAR *)_J("R5543POP"));
jdeStrcpy((JCHAR *)pUbeVar->szVersion, (const JCHAR *)_J("PHA0003"));
GetLocalEnvironmentName(pUbeVar->szEnhv, 11);
pUbeVar->idRunTime = (GLRTID)lpBhvrCom->hDlg << 16;
/*--------------------------------------------------------------------
* Run the UBE Asynchronously
*-------------------------------------------------------------------*/
pUbeVar->bSynchFlag = TRUE;
/*--------------------------------------------------------------------
* Run the UBE in Batch Mode
*-------------------------------------------------------------------*/
pUbeVar->bBatchFlag = TRUE;
/*--------------------------------------------------------------------
* Load R5543POP Structure
*-------------------------------------------------------------------*/
memset((void *)&ds5543pop, (int)_J('\0'), sizeof(ds5543pop));
jdeStrcpy((JCHAR *)ds5543pop.szEdiUserId, (const JCHAR *)lpDS->szEdiUserId);
jdeStrcpy((JCHAR *)ds5543pop.szEdiBatchNumber, (const JCHAR *)lpDS->szEdiBatchNumber);
jdeStrcpy((JCHAR *)ds5543pop.szEdiTransactNumber, (const JCHAR *)lpDS->szEdiTransactNumber);
/*--------------------------------------------------------------------
* Launch the Ube
*-------------------------------------------------------------------*/
idReturnCode = jdeLaunchUBEEx((HUSER)hUser, (PUBEVAR)pUbeVar, (LPVOID)&ds5543pop,
lpBhvrCom);
MathCopy(&lpDS->mnDocumentOrderInvoiceE, &ds5543pop.mnDocumentOrderInvoiceE);
jdeFree(pUbeVar);
}
/************************************************************************
* Function Clean Up
************************************************************************/
if (hUser != NULL)
{
JDB_FreeBhvr(hUser);
}
return (idReturnCode);
}
</pre><hr />
I've checked OCM's and the BSFN compiles. I've looked at example's of standard E1 functions that do this, and I don't see any fundamental differences, but I must be missing something.
Any ideas would be most appreciated.
I'm working in E1, 8.12, with 8.97
Thank you.
<font class="small">Code:</font><hr /><pre> #include <jde.h>
#define b5543pop_c
#include <b5543pop.h>
/**************************************************************************
* Business Function: SubmitR5543POPUBE
*
* Description: Submit R55POPUBE
*
* Parameters:
* LPBHVRCOM lpBhvrCom Business Function Communications
* LPVOID lpVoid Void Parameter - DO NOT USE!
* LPDSD554 lpDS Parameter Data Structure Pointer
*
*************************************************************************/
JDEBFRTN (ID) JDEBFWINAPI SubmitR5543POPUBE (LPBHVRCOM lpBhvrCom, LPVOID lpVoid, LPDSD5543POP lpDS)
{
/************************************************************************
* Variable declarations
************************************************************************/
ID idReturnCode = ER_SUCCESS;
ID idJDEDBResult = 0;
/************************************************************************
* Declare structures
************************************************************************/
DSRIR5543POP ds5543pop = {0};
/************************************************************************
* Declare pointers
************************************************************************/
HUSER hUser = (HUSER) NULL;
PUBEVAR pUbeVar = (PUBEVAR)NULL;
/************************************************************************
* Check for NULL pointers
************************************************************************/
if ((lpBhvrCom == (LPBHVRCOM) NULL) ||
(lpVoid == (LPVOID) NULL) ||
(lpDS == (LPDSD5543POP) NULL))
{
jdeErrorSet (lpBhvrCom, lpVoid, (ID) 0, _J("4363"), (LPVOID) NULL);
return ER_ERROR;
}
idJDEDBResult = JDB_InitBhvr (lpBhvrCom,
&hUser,
(JCHAR *)NULL,
JDEDB_COMMIT_AUTO);
if (idJDEDBResult == JDEDB_FAILED)
{
jdeErrorSet(lpBhvrCom, lpVoid, (ID) 0, _J("078S"), (LPVOID) NULL);
return (ER_ERROR);
}
/************************************************************************
* Set pointers
************************************************************************/
pUbeVar = jdeAlloc(COMMON_POOL, sizeof(struct tagUBEVAR),MEM_ZEROINIT);
/************************************************************************
* Main Processing
************************************************************************/
if (pUbeVar != (PUBEVAR)NULL)
{
memset((void *)pUbeVar, (int)_J('\0'), sizeof(pUbeVar));
/*--------------------------------------------------------------------
* Load Ube Structure
*-------------------------------------------------------------------*/
pUbeVar->bPreview = FALSE;
jdeNIDcpy((JCHAR *)pUbeVar->szReport,(const JCHAR *)_J("R5543POP"));
jdeStrcpy((JCHAR *)pUbeVar->szVersion, (const JCHAR *)_J("PHA0003"));
GetLocalEnvironmentName(pUbeVar->szEnhv, 11);
pUbeVar->idRunTime = (GLRTID)lpBhvrCom->hDlg << 16;
/*--------------------------------------------------------------------
* Run the UBE Asynchronously
*-------------------------------------------------------------------*/
pUbeVar->bSynchFlag = TRUE;
/*--------------------------------------------------------------------
* Run the UBE in Batch Mode
*-------------------------------------------------------------------*/
pUbeVar->bBatchFlag = TRUE;
/*--------------------------------------------------------------------
* Load R5543POP Structure
*-------------------------------------------------------------------*/
memset((void *)&ds5543pop, (int)_J('\0'), sizeof(ds5543pop));
jdeStrcpy((JCHAR *)ds5543pop.szEdiUserId, (const JCHAR *)lpDS->szEdiUserId);
jdeStrcpy((JCHAR *)ds5543pop.szEdiBatchNumber, (const JCHAR *)lpDS->szEdiBatchNumber);
jdeStrcpy((JCHAR *)ds5543pop.szEdiTransactNumber, (const JCHAR *)lpDS->szEdiTransactNumber);
/*--------------------------------------------------------------------
* Launch the Ube
*-------------------------------------------------------------------*/
idReturnCode = jdeLaunchUBEEx((HUSER)hUser, (PUBEVAR)pUbeVar, (LPVOID)&ds5543pop,
lpBhvrCom);
MathCopy(&lpDS->mnDocumentOrderInvoiceE, &ds5543pop.mnDocumentOrderInvoiceE);
jdeFree(pUbeVar);
}
/************************************************************************
* Function Clean Up
************************************************************************/
if (hUser != NULL)
{
JDB_FreeBhvr(hUser);
}
return (idReturnCode);
}
</pre><hr />