package javaconn.ri.sample;
import java.util.HashMap;
import java.util.Map;
import com.jdedwards.system.connector.dynamic.callmethod.BSFNExecutionWarning;
import com.jdedwards.system.connector.dynamic.callmethod.ExecutableMethod;
import com.jdedwards.system.connector.dynamic.callmethod.RequiredParameterNotFoundException;
import com.jdedwards.system.connector.dynamic.spec.source.BSFNSpecSource;
import com.jdedwards.system.connector.dynamic.spec.source.OneworldBSFNSpecSource;
import com.jdedwards.system.connector.dynamic.Connector;
import com.jdedwards.system.connector.dynamic.spec.source.*;
import com.jdedwards.system.connector.dynamic.spec.SpecFailureException;
import com.jdedwards.system.connector.dynamic.ServerFailureException;
import com.jdedwards.system.connector.dynamic.SystemException;
import com.jdedwards.system.connector.dynamic.ApplicationException;
public class ExecuteBSFN_RI {
int sessionID;
BSFNSpecSource specSource = null;
private ExecutableMethod poeEndDoc;
private ExecutableMethod poeBeginDoc;
ExecutableMethod poeEditDoc;
public ExecuteBSFN_RI() {
super();
// TODO Auto-generated constructor stub
}
public void initialize(){
try {
sessionID = Connector.getInstance().login("JDE", "JDE", "JDV812","*ALL");
specSource = new OneworldBSFNSpecSource(sessionID);
} catch (ServerFailureException e) {
e.printStackTrace();
} catch (SpecFailureException e) {
e.printStackTrace();
}
}
public boolean executeBiginDoc() throws SpecFailureException,ServerFailureException
{
Map inputParams = new HashMap();
Map outputParams = new HashMap();
inputParams.put("szOrderType", "OP");
String szBusinessUnit = " ";
szBusinessUnit = szBusinessUnit.substring(0, 12 - "M30".length()) + "M30";
BSFNMethod method = specSource.getBSFNMethod("F4311FSBeginDoc");
poeBeginDoc = method.createExecutable();
poeBeginDoc.setValues(inputParams);
poeBeginDoc.setValue("szBranchPlant",szBusinessUnit);
poeBeginDoc.setValue("jdOrderDate", "03/04/2007");
poeBeginDoc.setValue("szUserID", "JDE");
poeBeginDoc.setValue("mnSupplierNumber", "4242");
poeBeginDoc.setValue("cHeaderActionCode", "A");
poeBeginDoc.setValue("cProcessEdits", "1");
poeBeginDoc.setValue("cUpdateOrWriteToWorkFile", "2");
poeBeginDoc.setValue("szProgramID", "CORBA");
poeBeginDoc.setValue("szPurchaseOrderPrOptVersion", "ZJDE0001");
poeBeginDoc.setValue("szComputerID","DTP-DDHOLAKI-WF");
try {
BSFNExecutionWarning warning = poeBeginDoc.execute(sessionID);
if (warning!=null) {
System.out.println(warning.toString());
} else {
System.out.println("BeginDoc execution Finished");
}
}
catch (ApplicationException e) {
e.printStackTrace();
if (e instanceof RequiredParameterNotFoundException){
String paramName = ((RequiredParameterNotFoundException)e).getParamName();
System.out.println("showError(paramName)");;
}
return false;
} catch (SystemException e) {
e.printStackTrace();
System.exit(1);
}
return true;
}
public void executeEditDoc() throws SpecFailureException,ServerFailureException
{
Map inputParams = new HashMap();
Map outputParams = new HashMap();
inputParams.put("szUnformattedItemNumber", "1001");
inputParams.put("mnQuantityOrdered", "976");
inputParams.put("mnUnitPrice", "0.0");
inputParams.put("szLineType",null);
inputParams.put("szTransactionUoM",null);
BSFNMethod method = specSource.getBSFNMethod("F4311EditLine");
poeEditDoc = method.createExecutable();
poeEditDoc.setValues(inputParams);
poeEditDoc.setValue("mnJobNumber", poeBeginDoc.getValue("mnJobNumber"));
System.out.println("done");
poeEditDoc.setValue("szBranchPlant", poeBeginDoc.getValue("szBranchPlant"));
poeEditDoc.setValue("szComputerID", poeBeginDoc.getValue("szComputerID"));
poeEditDoc.setValue("cUpdateOrWriteWorkFile","2");
poeEditDoc.setValue("szOrderType", poeBeginDoc.getValue("szOrderType"));
poeEditDoc.setValue("cDetailActionCode", "1");
poeEditDoc.setValue("mnProcessID", poeBeginDoc.getValue("mnProcessID"));
poeEditDoc.setValue("mnTransactionID", poeBeginDoc.getValue("mnTransactionID"));
poeEditDoc.setValue("mnSupplierNumber", poeBeginDoc.getValue("mnSupplierNumber"));
try {
BSFNExecutionWarning warning = poeEditDoc.execute(sessionID);
if (warning!=null) {
System.out.println(warning.toString());
}
} catch (ApplicationException e) {
e.printStackTrace();
} catch (SystemException e) {
e.printStackTrace();
System.exit(1);
}
}
public void executeEndDoc() throws SpecFailureException,ServerFailureException
{
BSFNMethod method = specSource.getBSFNMethod("F4311EndDoc");
String methodName = method.getName();
System.out.println("Method name is "+methodName);
BSFNParameter[] paraList = method.getParameters();
for (int i=0; i<paraList.length;i++)
{
BSFNParameter para = paraList[i];
String name=para.getName();
System.out.println("Name is "+name);
}
// Step 3: Create the executable method from the business function metadata:
ExecutableMethod poeEndDoc = method.createExecutable();
try
{
// Set GUID,ApplicationID,WorkstationName and IPAddress
poeEndDoc.setGUID("3344556677");
poeEndDoc.setApplicationID("TestRI");
poeEndDoc.setWorkstationName("test-workstation");
poeEndDoc.setIPAddress("10.10.10.10");
poeEndDoc.setValue("mnJobNumber",poeBeginDoc.getValue("mnJobNumber"));
poeEndDoc.setValue("mnOrderNumberAssigned",poeBeginDoc.getValue("mnOrderNumber"));
poeEndDoc.setValue("szRelatedOrderType",poeBeginDoc.getValue("szOrderType"));
poeEndDoc.setValue("szComputerID",poeBeginDoc.getValue("szComputerID"));
poeEndDoc.setValue("cUseWorkFiles","2");
poeEndDoc.setValue("mnProcessID",poeBeginDoc.getValue("mnProcessID"));
poeEndDoc.setValue("mnTransactionID",poeBeginDoc.getValue("mnTransactionID"));
// Step 5: Execute the business function:
try {
BSFNExecutionWarning warning = poeEndDoc.execute(sessionID);
if (warning!=null) {
System.out.println(warning.toString());
}
} catch (ApplicationException e) {
e.printStackTrace();
} catch (SystemException e) {
e.printStackTrace();
System.exit(1);
}
// Step 6: Get return parameter values:
System.out.println("GUID: "+poeEndDoc.getGUID());
System.out.println("Application Name: "+poeEndDoc.getApplicationID());
System.out.println("WorkstationName: "+poeEndDoc.getWorkstationName());
System.out.println("IP Address: "+poeEndDoc.getIPAddress());
System.out.println("mnOrderNumberAssigned "+poeEndDoc.getValueString("mnOrderNumberAssigned"));
}
finally
{
// Log off and shut down connector if necessary:
Connector.getInstance().logoff(sessionID);
Connector.getInstance().shutDown();
}
}
/**
* @param args
*/
public static void main(String[] args) {
ExecuteBSFN_RI ri = new ExecuteBSFN_RI();
try {
ri.initialize();
ri.executeBiginDoc();
ri.executeEditDoc();
ri.executeEndDoc();
} catch (SpecFailureException e) {
e.printStackTrace();
} catch (ServerFailureException e) {
e.printStackTrace();
}
}
}