int Model_Splittransaction::update(const Data_Set& rows, int transactionID) { Data_Set split = instance().find(TRANSID(transactionID)); for (const auto& split_item : split) { instance().remove(split_item.SPLITTRANSID); } if (!rows.empty()) { Data_Set split_items; for (const auto &item : rows) { Data *split_item = instance().create(); split_item->TRANSID = transactionID; split_item->SPLITTRANSAMOUNT = item.SPLITTRANSAMOUNT; split_item->CATEGID = item.CATEGID; split_item->SUBCATEGID = item.SUBCATEGID; split_items.push_back(*split_item); } instance().save(split_items); } return rows.size(); }
/*====================================================================*/ int linkCommarea(DFHEIBLK *inDfheiptr, TraceParms* inTraceParms, CICSProgramDesc* pProgramDesc, Message* pRequestMessage, Message* pResponseMessage) { char* inputContent; dfheiptr = inDfheiptr; g_pTraceParms = inTraceParms; initLog(dfheiptr, inTraceParms); if (g_pTraceParms->traceMode == TRUE_CODE) { traceMessage(MODULE_NAME, "Entered linkCommarea"); } if (OK_CODE != checkCommarea(pProgramDesc, pRequestMessage)) { return ERROR_CODE; } /* The commarea expected by the target program might be larger * than the content of the incoming message part. In this case, * we need to rebuild the commarea. */ if (pProgramDesc->CICSLength > pRequestMessage->pParts->size.as_int) { reallocContent(pProgramDesc, pRequestMessage->pParts); } inputContent = pRequestMessage->pParts->content; /* COMMENT OUT UNLESS STORAGE DEBUGGING sprintf(g_traceMessage, "Storage before LINK PROGRAM(%s)", pProgramDesc->CICSProgram); traceMessage(MODULE_NAME, g_traceMessage); traceStorage(); */ /* Now link to CICS program and check for errors */ if (strlen(pProgramDesc->CICSSysID) == 0) { if (FALSE_CODE == pProgramDesc->CICSSyncOnReturn) { if (strlen(pProgramDesc->CICSTransID) == 0) { EXEC CICS LINK PROGRAM(pProgramDesc->CICSProgram) COMMAREA(inputContent) LENGTH(pProgramDesc->CICSLength) DATALENGTH(pProgramDesc->CICSDataLength) RESP(g_cicsResp) RESP2(g_cicsResp2); } else { EXEC CICS LINK PROGRAM(pProgramDesc->CICSProgram) COMMAREA(inputContent) LENGTH(pProgramDesc->CICSLength) DATALENGTH(pProgramDesc->CICSDataLength) TRANSID(pProgramDesc->CICSTransID) RESP(g_cicsResp) RESP2(g_cicsResp2); } } else { if (strlen(pProgramDesc->CICSTransID) == 0) { EXEC CICS LINK PROGRAM(pProgramDesc->CICSProgram) COMMAREA(inputContent) LENGTH(pProgramDesc->CICSLength) DATALENGTH(pProgramDesc->CICSDataLength) SYNCONRETURN RESP(g_cicsResp) RESP2(g_cicsResp2); } else { EXEC CICS LINK PROGRAM(pProgramDesc->CICSProgram) COMMAREA(inputContent) LENGTH(pProgramDesc->CICSLength) DATALENGTH(pProgramDesc->CICSDataLength) TRANSID(pProgramDesc->CICSTransID) SYNCONRETURN RESP(g_cicsResp) RESP2(g_cicsResp2); } } } else { if (FALSE_CODE == pProgramDesc->CICSSyncOnReturn) { if (strlen(pProgramDesc->CICSTransID) == 0) { EXEC CICS LINK PROGRAM(pProgramDesc->CICSProgram) COMMAREA(inputContent) LENGTH(pProgramDesc->CICSLength) DATALENGTH(pProgramDesc->CICSDataLength) SYSID(pProgramDesc->CICSSysID) RESP(g_cicsResp) RESP2(g_cicsResp2); } else { EXEC CICS LINK PROGRAM(pProgramDesc->CICSProgram) COMMAREA(inputContent) LENGTH(pProgramDesc->CICSLength) DATALENGTH(pProgramDesc->CICSDataLength) SYSID(pProgramDesc->CICSSysID) TRANSID(pProgramDesc->CICSTransID) RESP(g_cicsResp) RESP2(g_cicsResp2); } } else { if (strlen(pProgramDesc->CICSTransID) == 0) { EXEC CICS LINK PROGRAM(pProgramDesc->CICSProgram) COMMAREA(inputContent) LENGTH(pProgramDesc->CICSLength) DATALENGTH(pProgramDesc->CICSDataLength) SYSID(pProgramDesc->CICSSysID) SYNCONRETURN RESP(g_cicsResp) RESP2(g_cicsResp2); } else { EXEC CICS LINK PROGRAM(pProgramDesc->CICSProgram) COMMAREA(inputContent) LENGTH(pProgramDesc->CICSLength) DATALENGTH(pProgramDesc->CICSDataLength) SYSID(pProgramDesc->CICSSysID) TRANSID(pProgramDesc->CICSTransID) SYNCONRETURN RESP(g_cicsResp) RESP2(g_cicsResp2); } } } if (g_cicsResp != DFHRESP(NORMAL)) { logCicsError(MODULE_NAME, "LINK COMMAREA", g_cicsResp,g_cicsResp2); return ERROR_CODE; } /* COMMENT OUT UNLESS STORAGE DEBUGGING sprintf(g_traceMessage, "Storage after LINK PROGRAM(%s)", pProgramDesc->CICSProgram); traceMessage(MODULE_NAME, g_traceMessage); traceStorage(); */ if (OK_CODE != formatCommareaResponse( pProgramDesc, pRequestMessage, pResponseMessage)) { return ERROR_CODE; } if (g_pTraceParms->traceMode == TRUE_CODE) { traceMessage(MODULE_NAME, "Return from linkCommarea"); } return OK_CODE; }