Java Actions API reference - Persistence

Persistence when using Java actions makes use of the ESQL Persistence API. Objects are linked in the Java action by a temporary ObjId, the final IDs being allocated by the ESQL Persistence API after exiting the Java Action node.

The following code style can be used to create new records:

				//Create Transmission
			Transmission transmission = new Transmission();
			FlowThreadProperties props = FlowThreadProperties.getInstance();
			
			transmission.setAPP_ID(props.getAppId());
			transmission.setCID("cId01");
			transmission.setUID("uId01");

			transmission.setSTATUS("status01");
			transmission.setMASTER_FLAG("Y");
			transmission.setEVENT_ID(Long.valueOf(1));
			transmission.setSUBTYPE("subtype01");
			transmission.setSENDER("sender01");
			transmission.setRECEIVER("receiver01");
			transmission.setPARTY_ID(Long.valueOf(1));
			transmission.setCHANNEL_ID(Long.valueOf(1));
			transmission.setDATA("transmission data".getBytes());
			transmission.setCCSID(Long.valueOf(1208));
			transmission.setENCODING(Long.valueOf(1));
				
			ObjId ptId = transmission.create("PTGroup1");

		//Create Batch, related to above PT			
			Batch bat = new Batch();
			bat.setAPP_ID(props.getAppId());
			bat.setCID("bat cID");
			bat.setSTATUS("S_BatValid");
			bat.setMASTER_FLAG("N");
			bat.setEVENT_ID(Long.valueOf(2));
			bat.setSUBTYPE("PAYMENT_BATCH");
			bat.setTRANSMISSION_ID(ptId); //Using the PT ID from above
			bat.setVALUE_AMOUNT(BigDecimal.TEN);
			bat.setBATCH_DATE(new FTMDate(System.currentTimeMillis()));
			bat.setTXN_COUNT(Long.valueOf(3));
			bat.setBATCH_MAPPED("Y");

			ObjId batId = bat.create("BatGroup1");

		//Create an Obj Value for the Batch			
			ObjValue ov1 = new ObjValue();
			ov1.setOBJ_ID(batId);
			ov1.setCATEGORY("BATCH");
			ov1.setKEY("VALUE_AMOUNT");
			ov1.setSMALL_VALUE("10.00");
			ov1.create();

		//Create 1 Payment in the Batch
			PaymentTxn pay = new PaymentTxn();
			pay.setBATCH_ID(batId);
			pay.setAPP_ID(props.getAppId());
			pay.setCID("CID1");
			pay.setSTATUS("S_InTxnComplete");
			pay.setMASTER_FLAG("Y");
			pay.setEVENT_ID(Long.valueOf(1));
			pay.setOBJ_CLASS("OUT_TXN_NOWAIT");
			pay.setSUBTYPE("LIQUIDITY_REQ");
			pay.setTRANSMISSION_ID(ptId);
			pay.setBANK_CODE("BANKUS40");

			pay.create("PayGroup1");

		//Declare advanced routing info
			Transaction.setRoutingData("TxnGroup1", "OUT_TXN_NOWAIT", "LIQUIDITY_REQ", "PRIMARY", null);
			Transaction.setRoutingData("TxnGroup2", "OUT_TXN_WAIT", "GW_REQ", "PRIMARY", null);

		//Create 2 Transactions not in the above Batch
			Transaction txn = new Transaction();
			
			txn.setAPP_ID(props.getAppId());
			txn.setCID("CID2");
			txn.setSTATUS("S_InTxnComplete");
			txn.setMASTER_FLAG("Y");
			txn.setEVENT_ID(Long.valueOf(4));
			txn.setOBJ_CLASS("OUT_TXN_NOWAIT");
			txn.setSUBTYPE("LIQUIDITY_REQUEST");
			txn.setTRANSMISSION_ID(ptId);
			ObjId txnId = txn.create("TxnGroup1");
					
			Transaction txn2 = new Transaction();
			txn2.setCID("CID2");
			txn2.setSTATUS("S_InTxnComplete");
			txn2.setMASTER_FLAG("Y");
			txn2.setEVENT_ID(Long.valueOf(4));
			txn2.setOBJ_CLASS("OUT_TXN_NOWAIT");
			txn2.setSUBTYPE("LIQUIDITY_REQUEST");
			txn2.setTRANSMISSION_ID(ptId);
			txnId = txn2.create("TxnGroup2");			

		//Create an Error record
			Error err = new Error();
			err.setColVal(Error.TYPE, "DUPL");
			err.setColVal(Error.COMPONENT_TYPE, "ACTION");
			err.setColVal(Error.COMPONENT_NAME, "my action");
			err.setColVal(Error.DESCRIPTION, "description");
			err.setColVal(Error.OBJ_ID, ptId);
					
			err.create();

		//Raise an event only if a Transaction gets persisted

			e_PTValid.setConditionalObject(txnId);
			e_PTValid.raise("TRANSMISSION",ptId);