Technology Blogs by Members
Explore a vibrant mix of technical expertise, industry insights, and tech buzz in member blogs covering SAP products, technology, and events. Get in the mix!
cancel
Showing results for 
Search instead for 
Did you mean: 
Former Member

This blog is in continuation to Part 1 where we have discussed an example and informal logic to consume Directory API.

For working and consuming Webservice api in Java, one should understand JAXB.

Java Architecture for XML Binding (JAXB) allows Java developers to map Java classes to XML representations

JAXB is different from DOM or SAX.The Java DOM and SAX parsing APIs are lower-level APIs to parse XML documents, while JAXB (Java API for XML Binding) is a higher-level API for converting XML elements and attributes to a Java object hierarchy (and vice versa).


Now coming to development of standalone NWDS project.

For initial setup part please refer these 3 comprehensive blogs by william.li are good reference :

Directory API Development - Part 1 of 3

Directory API Development - Part 2 of 3

Directory API Development - Part 3 of 3

After import of API WSDL and Generate client step, classes specific to XML Schema are generated.

We can find types and getter and setter functions for each XML element(courtesy JAXB :smile: ).

Using these elements and get set methods one can traverse all API data.

As discussed in prev blog,

ICO-create() for Sender component : Change in MessageHeaderId & InboundProcessing .

ICO-change() for Receiver Component: Change in Receivers, ReceiverInterrfaces & OutboundProcessing.

Below is code for the NWDS project fo Create ICO Class.

NWDS Project Code:

mainClass


public static void main(String[] args)
{
  String csvFilePath = new String (<DataFile>);
  String[] bsList = readExcel(csvFilePath);
  CreateIntegratedConfiguration obj = new CreateIntegratedConfiguration(user,password,hostPort,bsList);
  obj.createICO();
}





Class

CreateIntegratedConfiguration


//Function createICO()
public void createICO()
{
IntegratedConfigurationCreateChangeIn
createIn=new IntegratedConfigurationCreateChangeIn();
createIn.setChangeListID(createChangeListId());
try{
List<RestrictedIntegratedConfiguration>
listCreateICO = createIn.getIntegratedConfiguration();
listCreateICO.addAll(readICO(queryICO()));
//Create Configuration Object
ConfigurationObjectModifyOut createOut
=  port.create(createIn);
}
catch (Exception e) {

e.printStackTrace();
rejectChangeListId(createIn.getChangeListID().toString());

System.exit(0);
}
}
// Function queryICO()
public
List<MessageHeaderID> queryICO() {
IntegratedConfigurationQueryIn
queryIn = new IntegratedConfigurationQueryIn();
MessageHeaderID msgHdr = new
MessageHeaderID();

msgHdr.setSenderComponentID(getSourceBS());
queryIn.setIntegratedConfigurationID(msgHdr);
IntegratedConfigurationQueryOut
queryOut = port.query(queryIn);
List<MessageHeaderID>
lMsgHdr = queryOut.getIntegratedConfigurationID();
return lMsgHdr;
}
@SuppressWarnings("finally")
public
List<RestrictedIntegratedConfiguration>
readICO(List<MessageHeaderID> msgHdrList)
{
List<RestrictedIntegratedConfiguration>
createICOlist= new ArrayList<RestrictedIntegratedConfiguration>();
try {
IntegratedConfigurationReadIn
readIn =new IntegratedConfigurationReadIn();

readIn.getIntegratedConfigurationID().addAll(msgHdrList);
readIn.setReadContext(ReadContextCode.ACTIVE);
IntegratedConfigurationReadOut
readOut = port.read(readIn);
List<IntegratedConfiguration>
listreadOut = readOut.getIntegratedConfiguration();
for(int
i=0;i<listreadOut.size();i++)
{
RestrictedIntegratedConfiguration
resICO = new RestrictedIntegratedConfiguration();

resICO.setMasterLanguage(listreadOut.get(i).getMasterLanguage());
// Get Description

resICO.getDescription().addAll(listreadOut.get(i).getDescription());
//Get Set
MessageHeaderId/IntegratedCOnfiguration ID

resICO.setIntegratedConfigurationID(listreadOut.get(i).getIntegratedConfigurationID());

resICO.getIntegratedConfigurationID().setSenderComponentID(getTargetBS());
//Get Set
MessageHeaderId/IntegratedCOnfiguration ID
//Get Set InboundProcessing

resICO.setInboundProcessing(listreadOut.get(i).getInboundProcessing());
resICO.getInboundProcessing().getCommunicationChannel().setComponentID(getTargetBS());
//Get Set InboundProcessing
//Get Receivers

resICO.setReceivers(listreadOut.get(i).getReceivers());
//Get Receiver Interfaces

resICO.getReceiverInterfaces().addAll(listreadOut.get(i).getReceiverInterfaces());
//Get Outbound
Processing

resICO.getOutboundProcessing().addAll(listreadOut.get(i).getOutboundProcessing());

createICOlist.add(resICO);
}
}
catch (Exception e) {

e.printStackTrace();
}
finally{
return createICOlist;
}
}











14 Comments
Labels in this area