In the SAP marketplace they offer a Java library for processing IDocs with can be installed on top of JCo (https://websmp106.sap-ag.
1.) Create a connection using SAP transaction sm59.
2.) Create an IDoc port using SAP transaction we21 (use destination name from step 1)
3.) Create a logical system using SAP transaction bd54, e.g. "MYJAVA"="My Java Programm"
4.) Create a "partner" relationship for your Java program using SAP transaction we20: Use the partner number from step 3 and the port from step 2.
5.) Use Java code similar to this:
JCoIDocServer server = JCoIDoc.getServer("MYSERVE
server.setIDocHandlerFacto
server.setTIDHandler(new MyTidHandler());
class MyIDocHandler implements JCoIDocHandler {
public void handleRequest(JCoServerCon
IDocDocumentIterator iterator = list.iterator();
while (iterator.hasNext()) {
IDocDocument document = iterator.next();
System.out.println(documen
System.out.println(documen
System.out.println(documen
System.out.println(documen
System.out.println(documen
try {
IDocSegment root = document.getRootSegment();
IDocSegment child;
// one child node
child = root.getFirstChild("TYPE1"
System.out.println(child.g
// multiple child nodes
IDocSegmentIterator segmentIterator = root.getChildrenIterator("
while (segmentIterator.hasNext()
child = segmentIterator.next();
System.out.println(child.g
}
} catch (IDocFieldNotFoundExceptio
// handle
}
}
}
}
class MyIDocHandlerFactory implements JCoIDocHandlerFactory {
private JCoIDocHandler handler = new MyIDocHandler();
public JCoIDocHandler getIDocHandler(JCoIDocServ
return handler;
}
}
static class MyTidHandler implements JCoServerTIDHandler {
public boolean checkTID(JCoServerContext context, String tid) {
// handle
return true;
}
public void confirmTID(JCoServerContex
// handle
}
public void commit(JCoServerContext context, String tid)
{
// handle
}
public void rollback(JCoServerContext context, String tid) {
// handle
}
}
class MyIDocHandlerFactory implements JCoIDocHandlerFactory {
private JCoIDocHandler handler = new MyIDocHandler();
public JCoIDocHandler getIDocHandler(JCoIDocServ
return handler;
}
}
static class MyTidHandler implements JCoServerTIDHandler {
public boolean checkTID(JCoServerContext context, String tid) {
// handle
return true;
}
public void confirmTID(JCoServerContex
// handle
}
public void commit(JCoServerContext context, String tid)
{
// handle
}
public void rollback(JCoServerContext context, String tid) {
// handle
}
}
Main Topics
Browse All Topics





by: objectkkPosted on 2009-10-15 at 12:45:35ID: 25584027
Any sample code to Write the IDocs into SAP is also highly appreciated.
thank you.