Download 1. Create new entry in UDDI Registry

Document related concepts
no text concepts found
Transcript
Creating new Integration Point – SAP Target
.
.
.
.
.
Table of Contents
.
.
.
.
Overview .............................................................................................................
1
Steps.................................................................................................................... 2
1. Create new entry in UDDI Registry ............................................................... 3
2. Create new process and endpoints in ENS GUI ....................................... 12
3. Checkout code from CVS ............................................................................ 16
WinCVS Setup Steps ................................................................................ 17
4. Create gmsap207 folder and its contents ................................................... 25
GMFinancial_To_SapCore_207.java ....................................................... 25
GMFinancial_To_SapCore_207Impl.java ................................................ 26
InboundProcessor_207.java ..................................................................... 27
deploy.wsdd ............................................................................................... 32
GMFinancial_To_SapCore_207.java ....................................................... 33
GMFinancial_To_SapCore_207Service.java........................................... 34
GMFinancial_To_SapCore_207ServiceLocator.java .............................. 35
Gmsap207SoapBindingImpl.java ............................................................. 37
Gmsap207SoapBindingStub.java............................................................. 38
undeploy.wsdd ........................................................................................... 40
5. Modify aeiconfig.properties .......................................................................... 41
aeiconfig.properties.................................................................................... 41
Before ......................................................................................................... 41
After ............................................................................................................ 41
6. Modify propertiesInterface.java ................................................................... 42
PropertiesInterface.java............................................................................. 42
Before ......................................................................................................... 42
After ............................................................................................................ 42
.
.
7. Modify server-config.wsdd .......................................................................... 43
.
.
8. Modify sapservices.properties ....................................................................
45
.
.
sapservicesBuild.xml .................................................................................
45
.
.
Before .........................................................................................................
45
.
After ......................................................................................................
457
9. Check In Code to CVS ............................................................................... 47
10. Run UNIX Script PushVersion................................................................... 48
11. Create a new XSLT file ............................................................................. 54
12. Set-up function modules, structures and parameters in SAP ................ 54
13. Troubleshooting ........................................................................................ 554
Creating new Integration Point – SAP Target
Overview
Apache Corporation has a requirement to add a new integration point to the already
existing Apache Integration Infrastructure (AII). Apache Integration Infrastructure has been
designed to add new integration points. Adding a new integration point does not require
extensive coding.
Creation of new integration point is done by cloning a already existing integration point
with source endpoint as Gas Master (GM) and target endpoint as SAP.
Integration point 2060 will be cloned to create a new integration point 2070.
This document specifically discusses creation of integration point 2070. In future, this
document can be used to create a new integration point with SAP as target.
Steps to create new integration point
Steps
1.
Create a new entry in UDDI registry
2.
Create new process and endpoints in ENS GUI
3.
Checkout code from CVS repository
4.
Create gmsap207 and its content
5.
Modify aeiconfig.properties
6.
Modify propertiesInterface.java
7.
Modify server-config.wsdd
8.
Modify sapservciesBuild.xml
9.
Check in code to CVS repository
10. Run UNIX script PushVersion
11. Create a new XSLT file
12. Set-up function modules, structures and parameters in SAP
13. Troubleshooting
1. Create new entry in UDDI Registry
Point your web browser to http://dbdev01:9090/uddi/web
Click on ‘Find Businesses’ from the navigation bar on the left.
Enter ‘%’ (without the quotes) and press Search button
Click on ‘Apache Enterprise Integration’ link in business name column.
Click on ‘Services’ tab. The 2nd one after ‘Details’ tab.
Click on ‘Edit’ button found at the bottom of the browser page.
Click on ‘Add Service’ button to add a new service.
Enter service name as AR_GM_TO_SAPCore
Enter Description as ‘Process ID 2070, Endpoint ID 20702’ (without quotes)
Click on ‘Add binding templates’.
At this point you will observe that the binding key has been assigned. This binding key will
later be used to setup Error Notification System for the new SAP target endpoint.
Select Binding type: access point
Enter access point value as i.e. http://dbdev01:8080/sapservices/services/gmsap207?wsdl
Select Type: ‘http’
Enter Description as i.e. Process ID 2070, Endpoint ID 20702
Choose Permission Level as public
For the UDDI setup to take effect, Fuego must be bounced i.e. stopped and started. This
information is stored in Fuego cache during runtime.
Environment
URL
Development
http://dbdev01:9090/uddi/web
Test
http://inttst01:8080/wasp/uddi/web
Production
http://intprd01:8080/wasp/uddi/web
2. Create new process and endpoints in ENS
Point your browser to http://ensguidev.apachecorp.com and pick Process,
Click Add New (found at the bottom of the page)
Enter the following information and click on ‘Add’ link:
Enter 2070 in process field
Enter GM AR to SAP Core in Process Description field.
Enter the following information and Click on ‘Update’ button:
Enter the following information and Click on ‘Update’ button:
ENS Form
Field Name
System
Process
EndPoint
EndPoint
Description
Inegration
Point
Description
Process
Type
EndPoint
Type
Object ID
Notify
Severity
Notify
Indicator
Fatal Level
Fatal
Interval
Severity
Level
Severity
Interval
Regular
Value
SAPCORE – SAP Core Interface
2070 – GM AR to SAP Core
20702
Inegration Point 207 Target
Gas Master Accounts Receivable to SAP
BATCH
TARGET
2070 – GM AR to SAP Core
3 – Error:
F
5 – Fatal Error
10:00:00
4 – Severe Error
-1
3 – Error:
Severity
Batch Timer
CallBack
Timer
Binding key
Binding
Method
Binding
Parameters
XSLT File
Name
Framework
Used
Status
Indicator
Webservice
Location
Query
Priority
Environment
10:00:00
-1
<This value is setup at the time of UDDI registration> For e.g. cc20d4e0c256-11d9-8933-b8a03c50a862
LoadXML
sProcessID,sXMLSourceData,sXSLTFileName
http://dbdev01.apachecorp.com:8080/xsltrep/207/sapcore/t207sapcore.xslt
J
A
http://dbdev01:8080/sapservices/services/gmsap207?wsdl
5
URL
Development
http://ensguidev.apachecorp.com
Test
http://ensguisys.apachecorp.com
3. Checkout code from CVS
Versioning of source code is done using CVS.
WinCVS can be downloaded from http://www.wincvs.org
Follow the instructions to install winCVS. WinCVS requires Python. Python can be
downloaded from http://www.python.org.
Following are the setup steps for WinCVS:
Set-up WinCVS
:pserver;username=devel;password=devtst;hostname=inttst01:/apps/cvs
Add domain name apachecorp.com if you receive a return code of 1 and NOT 0.
NAdmin Login
N  Admin  Preferences
NRemoteCheckout Module
:pserver;username=devel;password=devtst;hostname=inttst01:/apps/cvs
NRemoteCreate a tag by module
:pserver;username=devel;password=devtst;hostname=inttst01:/apps/cvs
NModifyCreate tag settings
4. Create gmsap207 folder and its contents
Change directory to
/apps/users/devel/src/Integration/webapps/sapservices/WEBINF/source/sap/inbound/co/a
ei/sap/inbound
Copy folder gmsap206 and all its subfolders to gmsap207
Change directory to gmsap207
Rename the files by replacing 206 with 207
Open each file using text editor and replace 206 with 207
There are 3 files to be modified in gmsap207 folder. The files are:
GMFinancial_To_SapCore_207.java
GMFinancial_To_SapCore_207Impl.java
InboundProcessor_207.java
GMFinancial_To_SapCore_207.java
package com.aei.sap.inbound.gmsap207;
/** This is the main class process the SAP inbound call from .
** GM Financials to SAP Core
**
** Creation Date : 05/11/2005
**/
public interface GMFinancial_To_SapCore_207 {
public String loadXML(String sProcessID, byte[] sXMLSourceData,String sXSLTFileName);
}
GMFinancial_To_SapCore_207Impl.java
package com.aei.sap.inbound.gmsap207;
/**
** Web Service : GMFinancial_To_SapCore Integration ID # 207
**
**/
import com.aei.sap.inbound.gmsap207.InboundProcessor_207;
import com.aei.tools.LogHeader;
import com.aei.tools.StringZipper;
public class GMFinancial_To_SapCore_207Impl extends LogHeader {
public GMFinancial_To_SapCore_207Impl() {
}
public String loadXML(String sProcessID, byte[] sXMLSourceData,String sXSLTFileName) {
String status = "";
try {
String inProcessID = sProcessID;
String inXSLTFile = sXSLTFileName;
String inXML = "";
if(sXMLSourceData != null) {
StringZipper strZip = new StringZipper();
inXML = strZip.getUnCompressed(sXMLSourceData);
}
InboundProcessor_207 process = new InboundProcessor_207();
status = process.executeInboundProcess(inProcessID,inXML,inXSLTFile);
}catch(Exception exp) {
status = "Request Failed - System is not available to process your request";
this.writeLog(exp);
}
return status;
}
}
InboundProcessor_207.java
package com.aei.sap.inbound.gmsap207;
/**
** This is the sap inbound load process class called by the
** inbound controller to process #207 Intergration process
** inbound request call from GMFinancials to SAP Core.
**/
import com.aei.tools.*;
import com.aei.exception.*;
import com.sap.mw.jco.IRepository;
import com.sap.mw.jco.IFunctionTemplate;
import com.sap.mw.jco.JCO;
import com.sap.mw.jco.JCO.AbapException;
import com.sap.mw.jco.JCO.Response;
import com.sap.mw.jco.JCO.Request;
import com.sap.mw.jco.JCO.Client;
import com.sap.mw.jco.JCO.Exception;
import com.sap.mw.jco.JCO.Record;
import com.sap.mw.jco.JCO.Function;
import com.sap.mw.jco.JCO.ParameterList;
import com.sap.mw.jco.JCO.FieldIterator;
import com.sap.mw.jco.IMetaData;
import java.util.Vector;
import java.io.FileNotFoundException;
public class InboundProcessor_207 extends LogHeader {
Vector errorData = null;
Vector processTrackError = null;
FormatErrorString formatError = new FormatErrorString();
IRepository repository;
public InboundProcessor_207() {
}
public String executeInboundProcess(String sProcessID,String sXMLSourceData,String sXSLTFileName) {
processTrackError = new Vector(0,1);
JCO.Client sapConnection = null;
BuildReturnXML returnXML = new BuildReturnXML();
XMLEncodingFilter xmlEncodingFilter = new XMLEncodingFilter();
SAPConnectionHandler connectionManager = null;
String sReturnAcknowledgeStatusCode = null;
JCO.Function function;
String inFuegoProcessID = null;
String sReturnXMLObjDescMessage = "Middleware call back return document for integration id # 207 ";
String sReturnXMLIntegrationObjID ="2070";
String sReturnXMLIntegrationEndpointID ="20702";
String sReturnXMLJavaFrameWorkReturnObjID ="90032";
String sSystemName ="SAPCore";
String sSourceSystemName ="Gas Master";
try {
String inXmlData = sXMLSourceData;
//intake parameter data
String inXSLTFileName = sXSLTFileName; //intake parameter data
inFuegoProcessID = sProcessID;
//intake parameter data
if(inXmlData == null || inXmlData.trim().length() ==0) {
processTrackError.addElement("JFW: Input Source XML data String is not a valid data");
throw new SourceDataException();
}
Modify manually
StripObjectID stripObjectID = new StripObjectID();
String sObjID = stripObjectID.getObjectID(inXmlData);
if(sObjID == null || sObjID.equals("") || sObjID.length()==0 ) {
throw new ObjectIDException();
}
if(inXSLTFileName != null && inXSLTFileName.length() >0) {
XSLTTransformation transformXML = new XSLTTransformation();
String inTranformesXmlData;
try {
inTranformesXmlData = transformXML.getXSLTTransformed(inXmlData,inXSLTFileName);
if(inTranformesXmlData != null && inTranformesXmlData.length()>0 &&
inTranformesXmlData.trim().length() >0) {
if(inTranformesXmlData.equals("FAILED")) {
throw new XMLTransformationException();
}else {
inXmlData = inTranformesXmlData;
}
}
}catch(Exception generalExp){
this.writeLog(generalExp);
this.writeLog("JWF: Class-InboundProcessor 207 Error: Error in doing the xml transformation");
}catch(XMLTransformationException transFormExp) {
throw new XMLTransformationException();
}
}
StripXML buildSourceTable = new StripXML();
Vector sourceData = buildSourceTable.processStrip(inXmlData);
if(sourceData == null || sourceData.size() ==0) {
processTrackError.addElement("JFW: Source xml String of 256 char collection object has no valid record");
throw new SourceCollectionException();
}
connectionManager = new SAPConnectionHandler(sSAPCoreSystemConnection_207);
if(connectionManager.connectionPropertiesFlag()) {
sapConnection = connectionManager.getConnection();
if(sapConnection == null) {
throw new SAPConnectionException();
}
repository = new JCO.Repository(sSAPRepositoryName_207, sapConnection);
function
= this.createFunction(sSAPGenericFunctionName);
if(function == null) {
throw new SAPFunctionCallException();
}
ParameterList input = function.getImportParameterList();
input.setValue(sObjID,sSAPImportObjIDImportParameter); //Set Import Parameter value
input.setValue("",sSAPImportCommandImportParameter); //Set Import Parameter value
input.setValue(inFuegoProcessID,sSAPImportConnectionIDImportParameter); //Set Import Parameter
value
ParameterList sapTablePL = function.getTableParameterList();
JCO.Table inputTable = sapTablePL.getTable(sSAPImportDataLoadTable);
inputTable.insertRow(1);
inputTable.setValue("",sSAPImportDataLoadTableFieldName);
for(int loopCounter=0; loopCounter < sourceData.size(); loopCounter++) {
try {
inputTable.setValue((String)sourceData.elementAt(loopCounter),sSAPImportDataLoadTableFieldName);
inputTable.appendRow();
}catch(ArrayIndexOutOfBoundsException arrayOutIndexExp) {
this.writeLog(arrayOutIndexExp);
break;
}
}
sapConnection.execute(function);
sReturnAcknowledgeStatusCode = new String();
ParameterList sapExportPL = function.getExportParameterList();
String sStatus = (String)sapExportPL.getValue(sSAPAcceptanceAcknowledgement);
JCO.Table error = function.getTableParameterList().getTable(sSAPExportErrorTable);
String sReturnXMLErrorMessage = "";
String sReturnXMLAddlErrorMessage = "";
for (int i = 0; i < error.getNumRows(); i++) {
error.setRow(i);
//Phase1:Error Message
String sErrTemp = "<MESSAGE_CODE>" + error.getString("TYPE") + error.getString("NUMBER") +
"</MESSAGE_CODE>"
+"<MESSAGE_STRING>"
+ xmlEncodingFilter.applyEncodingFilter(error.getString("MESSAGE")) +
"</MESSAGE_STRING>";
sReturnXMLErrorMessage = sReturnXMLErrorMessage + sErrTemp;
//Phase2:Additional Error Message
String sAddtlErrTemp = "<MESSAGE_CODE>" + "LOG_NO: " + error.getString("LOG_NO") + " LOG_MES_NO: " + error.getString("LOG_MSG_NO") + "</MESSAGE_CODE>"
+"<MESSAGE_STRING>"+ " Message_V1 : " +
xmlEncodingFilter.applyEncodingFilter(error.getString("MESSAGE_V1"))
+ " Message_V2 : " +
xmlEncodingFilter.applyEncodingFilter(error.getString("MESSAGE_V2"))
+ " Message_V3 : " +
xmlEncodingFilter.applyEncodingFilter(error.getString("MESSAGE_V3"))
+ " Message_V4 : " +
xmlEncodingFilter.applyEncodingFilter(error.getString("MESSAGE_V4"))
+"</MESSAGE_STRING>";
sReturnXMLAddlErrorMessage = sReturnXMLAddlErrorMessage + sAddtlErrTemp;
}
// this.writeLog("RETURN SAP ERROR MESSAGE : " + sReturnXMLErrorMessage);
// this.writeLog("RETURN SAP Additional ERROR MESSAGE : " + sReturnXMLAddlErrorMessage);
connectionManager.closeConnection(sapConnection);
sReturnAcknowledgeStatusCode =
returnXML.getSAPReturnXML(sSystemName,sReturnXMLIntegrationObjID,sReturnXMLObjDescMessage,inFue
goProcessID,sStatus,sReturnXMLErrorMessage,sReturnXMLAddlErrorMessage,sReturnXMLIntegrationEndpointI
D,sSourceSystemName);
}else {
processTrackError.addElement("JFW: Error in connecting to the " + sSAPCoreSystemConnection_207
+ " System");
this.writeLog("Error in the SAP Connection properties file");
sReturnAcknowledgeStatusCode =
returnXML.getJVFReturnXML(inFuegoProcessID,sSAPResponseFailure,"Error in connecting to the "
+sSAPCoreSystemConnection_207 + "
System",sReturnXMLJavaFrameWorkReturnObjID,sSystemName,sReturnXMLIntegrationEndpointID,"3");
}
}catch(JCO.Exception jcoExp) {
this.writeLog(jcoExp);
sReturnAcknowledgeStatusCode =
returnXML.getJVFReturnXML(inFuegoProcessID,sSAPResponseFailure,jcoExp.toString(),sReturnXMLJavaFram
eWorkReturnObjID,sSystemName,sReturnXMLIntegrationEndpointID,"3");
processTrackError.addElement(jcoExp.toString());
if(sapConnection != null) {
connectionManager.closeConnection(sapConnection);
}
if(sReturnAcknowledgeStatusCode == null) {
sReturnAcknowledgeStatusCode =
returnXML.getJVFReturnXML(inFuegoProcessID,sSAPResponseFailure,jcoExp.toString(),sReturnXMLJavaFram
eWorkReturnObjID,sSystemName,sReturnXMLIntegrationEndpointID,"3");
}
}catch(SAPConnectionException sapConnectionExp) {
sReturnAcknowledgeStatusCode =
returnXML.getJVFReturnXML(inFuegoProcessID,sSAPResponseFailure,sapConnectionExp.toString(),sReturnX
MLJavaFrameWorkReturnObjID,sSystemName,sReturnXMLIntegrationEndpointID,"3");
}catch(SourceDataException sourceDataExp) {
processTrackError.addElement(sourceDataExp.toString());
this.writeLog(sourceDataExp);
sReturnAcknowledgeStatusCode =
returnXML.getJVFReturnXML(inFuegoProcessID,sSAPResponseFailure,sourceDataExp.toString(),sReturnXMLJ
avaFrameWorkReturnObjID,sSystemName,sReturnXMLIntegrationEndpointID,"17");
}catch(ObjectIDException objIDExp) {
processTrackError.addElement(objIDExp.toString());
this.writeLog(objIDExp);
sReturnAcknowledgeStatusCode =
returnXML.getJVFReturnXML(inFuegoProcessID,sSAPResponseFailure,objIDExp.toString(),sReturnXMLJavaFra
meWorkReturnObjID,sSystemName,sReturnXMLIntegrationEndpointID,"13");
}catch(SourceCollectionException sourceCollectionExp) {
processTrackError.addElement(sourceCollectionExp.toString());
this.writeLog(sourceCollectionExp);
sReturnAcknowledgeStatusCode =
returnXML.getJVFReturnXML(inFuegoProcessID,sSAPResponseFailure,sourceCollectionExp.toString(),sReturnX
MLJavaFrameWorkReturnObjID,sSystemName,sReturnXMLIntegrationEndpointID,"18");
}catch(SAPFunctionCallException functionCollectionExp) {
processTrackError.addElement(functionCollectionExp.toString());
this.writeLog(functionCollectionExp);
sReturnAcknowledgeStatusCode =
returnXML.getJVFReturnXML(inFuegoProcessID,sSAPResponseFailure,functionCollectionExp.toString(),sReturn
XMLJavaFrameWorkReturnObjID,sSystemName,sReturnXMLIntegrationEndpointID,"12");
}catch(XMLTransformationException xmlTransformExp) {
processTrackError.addElement(xmlTransformExp.toString());
this.writeLog(xmlTransformExp);
sReturnAcknowledgeStatusCode =
returnXML.getJVFReturnXML(inFuegoProcessID,sSAPResponseFailure,xmlTransformExp.toString(),sReturnXM
LJavaFrameWorkReturnObjID,sSystemName,sReturnXMLIntegrationEndpointID,"8");
}catch(NullPointerException nullExp) {
processTrackError.addElement(nullExp.toString());
this.writeLog(nullExp);
sReturnAcknowledgeStatusCode =
returnXML.getJVFReturnXML(inFuegoProcessID,sSAPResponseFailure,nullExp.toString(),sReturnXMLJavaFram
eWorkReturnObjID,sSystemName,sReturnXMLIntegrationEndpointID,"999");
}catch(java.lang.Exception generalExp) {
processTrackError.addElement(generalExp.toString());
this.writeLog(generalExp);
sReturnAcknowledgeStatusCode =
returnXML.getJVFReturnXML(inFuegoProcessID,sSAPResponseFailure,generalExp.toString(),sReturnXMLJavaF
rameWorkReturnObjID,sSystemName,sReturnXMLIntegrationEndpointID,"999");
}
return sReturnAcknowledgeStatusCode;
}
public JCO.Function createFunction(String name) {
JCO.Function inFunction;
try {
IFunctionTemplate ft = repository.getFunctionTemplate(name.toUpperCase());
if (ft == null) {
inFunction = null;
}else {
inFunction = ft.getFunction();
}
}
catch (java.lang.Exception e) {
this.writeLog("Class: InboundProcessor - Error is getting the SAP function " + name + " reference");
inFunction = null;
}
return inFunction;
}
public Vector getErrors() {
if(processTrackError == null || processTrackError.size() ==0) {
processTrackError = new Vector(0,1);
processTrackError.addElement("No Track Record is loaded");
}
return processTrackError;
}
public String getErrorString() {
String sErrorStr = "";
if(processTrackError != null && processTrackError.size() >0) {
sErrorStr = formatError.getErrorString(processTrackError);
}
return sErrorStr;
}
}
There is a sub folder by name ws with in gmsap207
Change directory to ws
Rename the files by replacing 206 with 207
Open each file using text editor and replace 206 with 207
The folder contains 7 files:
deploy.wsdd
GMFinancial_To_SapCore_207.java
GMFinancial_To_SapCore_207Service.java
GMFinancial_To_SapCore_207ServiceLocator.java
Gmsap207SoapBindingImpl.java
Gmsap207SoapBindingStub.java
undeploy.wsdd
All the above files are created using ANT scripts that are part of pushversion. Pushversion
is executed from UNIX prompt.
deploy.wsdd
<!-- Use this file to deploy some handlers/chains and services -->
<!-- Two ways to do this:
-->
<!-- java org.apache.axis.client.AdminClient deploy.wsdd
-->
<!-- after the axis server is running
-->
<!-- or
-->
<!-- java org.apache.axis.utils.Admin client|server deploy.wsdd -->
<!-- from the same directory that the Axis engine runs
-->
<deployment
xmlns="http://xml.apache.org/axis/wsdd/"
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
<!-- Services from GMFinancial_To_SapCore_207Service WSDL service -->
<service name="gmsap207" provider="java:RPC">
<parameter name="wsdlTargetNamespace" value="urn:gmsap207"/>
<parameter name="wsdlServiceElement" value="GMFinancial_To_SapCore_207Service"/>
<parameter name="wsdlServicePort" value="gmsap207"/>
<parameter name="className" value="com.aei.sap.inbound.gmsap207.ws.Gmsap207SoapBindingImpl"/>
<parameter name="wsdlPortType" value="GMFinancial_To_SapCore_207"/>
<operation name="loadXML" qname="operNS:loadXML" xmlns:operNS="urn:gmsap207"
returnQName="loadXMLReturn" returnType="rtns:string" xmlns:rtns="http://www.w3.org/2001/XMLSchema" >
<parameter name="sProcessID" type="tns:string" xmlns:tns="http://www.w3.org/2001/XMLSchema"/>
<parameter name="sXMLSourceData" type="tns:base64Binary"
xmlns:tns="http://www.w3.org/2001/XMLSchema"/>
<parameter name="sXSLTFileName" type="tns:string" xmlns:tns="http://www.w3.org/2001/XMLSchema"/>
</operation>
<parameter name="allowedMethods" value="loadXML"/>
<parameter name="scope" value="Request"/>
</service>
</deployment>
GMFinancial_To_SapCore_207.java
/**
* GMFinancial_To_SapCore_207.java
*
* This file was auto-generated from WSDL
* by the Apache Axis WSDL2Java emitter.
*/
package com.aei.sap.inbound.gmsap207.ws;
public interface GMFinancial_To_SapCore_207 extends java.rmi.Remote {
public java.lang.String loadXML(java.lang.String sProcessID, byte[] sXMLSourceData, java.lang.String
sXSLTFileName) throws java.rmi.RemoteException;
}
GMFinancial_To_SapCore_207Service.java
/**
* GMFinancial_To_SapCore_207Service.java
*
* This file was auto-generated from WSDL
* by the Apache Axis WSDL2Java emitter.
*/
package com.aei.sap.inbound.gmsap207.ws;
public interface GMFinancial_To_SapCore_207Service extends javax.xml.rpc.Service {
public java.lang.String getgmsap207Address();
public com.aei.sap.inbound.gmsap207.ws.GMFinancial_To_SapCore_207 getgmsap207() throws
javax.xml.rpc.ServiceException;
public com.aei.sap.inbound.gmsap207.ws.GMFinancial_To_SapCore_207 getgmsap207(java.net.URL
portAddress) throws javax.xml.rpc.ServiceException;
}
GMFinancial_To_SapCore_207ServiceLocator.java
/**
* GMFinancial_To_SapCore_207ServiceLocator.java
*
* This file was auto-generated from WSDL
* by the Apache Axis WSDL2Java emitter.
*/
package com.aei.sap.inbound.gmsap207.ws;
public class GMFinancial_To_SapCore_207ServiceLocator extends org.apache.axis.client.Service implements
com.aei.sap.inbound.gmsap207.ws.GMFinancial_To_SapCore_207Service {
// Use to get a proxy class for gmsap207
private final java.lang.String gmsap207_address = "http://localhost:8080/sapservices/services/gmsap207";
public java.lang.String getgmsap207Address() {
return gmsap207_address;
}
// The WSDD service name defaults to the port name.
private java.lang.String gmsap207WSDDServiceName = "gmsap207";
public java.lang.String getgmsap207WSDDServiceName() {
return gmsap207WSDDServiceName;
}
public void setgmsap207WSDDServiceName(java.lang.String name) {
gmsap207WSDDServiceName = name;
}
public com.aei.sap.inbound.gmsap207.ws.GMFinancial_To_SapCore_207 getgmsap207() throws
javax.xml.rpc.ServiceException {
java.net.URL endpoint;
try {
endpoint = new java.net.URL(gmsap207_address);
}
catch (java.net.MalformedURLException e) {
return null; // unlikely as URL was validated in WSDL2Java
}
return getgmsap207(endpoint);
}
public com.aei.sap.inbound.gmsap207.ws.GMFinancial_To_SapCore_207 getgmsap207(java.net.URL
portAddress) throws javax.xml.rpc.ServiceException {
try {
com.aei.sap.inbound.gmsap207.ws.Gmsap207SoapBindingStub _stub = new
com.aei.sap.inbound.gmsap207.ws.Gmsap207SoapBindingStub(portAddress, this);
_stub.setPortName(getgmsap207WSDDServiceName());
return _stub;
}
catch (org.apache.axis.AxisFault e) {
return null;
}
}
/**
* For the given interface, get the stub implementation.
* If this service has no port for the given interface,
* then ServiceException is thrown.
*/
public java.rmi.Remote getPort(Class serviceEndpointInterface) throws javax.xml.rpc.ServiceException {
try {
if
(com.aei.sap.inbound.gmsap207.ws.GMFinancial_To_SapCore_207.class.isAssignableFrom(serviceEndpointInte
rface)) {
com.aei.sap.inbound.gmsap207.ws.Gmsap207SoapBindingStub _stub = new
com.aei.sap.inbound.gmsap207.ws.Gmsap207SoapBindingStub(new java.net.URL(gmsap207_address), this);
_stub.setPortName(getgmsap207WSDDServiceName());
return _stub;
}
}
catch (java.lang.Throwable t) {
throw new javax.xml.rpc.ServiceException(t);
}
throw new javax.xml.rpc.ServiceException("There is no stub implementation for the interface: " +
(serviceEndpointInterface == null ? "null" : serviceEndpointInterface.getName()));
}
/**
* For the given interface, get the stub implementation.
* If this service has no port for the given interface,
* then ServiceException is thrown.
*/
public java.rmi.Remote getPort(javax.xml.namespace.QName portName, Class serviceEndpointInterface)
throws javax.xml.rpc.ServiceException {
java.rmi.Remote _stub = getPort(serviceEndpointInterface);
((org.apache.axis.client.Stub) _stub).setPortName(portName);
return _stub;
}
public javax.xml.namespace.QName getServiceName() {
return new javax.xml.namespace.QName("urn:gmsap207", "GMFinancial_To_SapCore_207Service");
}
private java.util.HashSet ports = null;
public java.util.Iterator getPorts() {
if (ports == null) {
ports = new java.util.HashSet();
ports.add(new javax.xml.namespace.QName("gmsap207"));
}
return ports.iterator();
}
}
Gmsap207SoapBindingImpl.java
/**
* Gmsap207SoapBindingImpl.java
*
* This file was auto-generated from WSDL
* by the Apache Axis WSDL2Java emitter.
*/
package com.aei.sap.inbound.gmsap207.ws;
import com.aei.sap.inbound.gmsap207.GMFinancial_To_SapCore_207Impl;
public class Gmsap207SoapBindingImpl implements
com.aei.sap.inbound.gmsap207.ws.GMFinancial_To_SapCore_207{
GMFinancial_To_SapCore_207Impl process = new GMFinancial_To_SapCore_207Impl();
public java.lang.String loadXML(java.lang.String sProcessID, byte[] sXMLSourceData, java.lang.String
sXSLTFileName) throws java.rmi.RemoteException {
return process.loadXML(sProcessID,sXMLSourceData,sXSLTFileName);
}
}
Gmsap207SoapBindingStub.java
/**
* Gmsap207SoapBindingStub.java
*
* This file was auto-generated from WSDL
* by the Apache Axis WSDL2Java emitter.
*/
package com.aei.sap.inbound.gmsap207.ws;
public class Gmsap207SoapBindingStub extends org.apache.axis.client.Stub implements
com.aei.sap.inbound.gmsap207.ws.GMFinancial_To_SapCore_207 {
private java.util.Vector cachedSerClasses = new java.util.Vector();
private java.util.Vector cachedSerQNames = new java.util.Vector();
private java.util.Vector cachedSerFactories = new java.util.Vector();
private java.util.Vector cachedDeserFactories = new java.util.Vector();
public Gmsap207SoapBindingStub() throws org.apache.axis.AxisFault {
this(null);
}
public Gmsap207SoapBindingStub(java.net.URL endpointURL, javax.xml.rpc.Service service) throws
org.apache.axis.AxisFault {
this(service);
super.cachedEndpoint = endpointURL;
}
public Gmsap207SoapBindingStub(javax.xml.rpc.Service service) throws org.apache.axis.AxisFault {
if (service == null) {
super.service = new org.apache.axis.client.Service();
} else {
super.service = service;
}
}
private org.apache.axis.client.Call createCall() throws java.rmi.RemoteException {
try {
org.apache.axis.client.Call _call =
(org.apache.axis.client.Call) super.service.createCall();
if (super.maintainSessionSet) {
_call.setMaintainSession(super.maintainSession);
}
if (super.cachedUsername != null) {
_call.setUsername(super.cachedUsername);
}
if (super.cachedPassword != null) {
_call.setPassword(super.cachedPassword);
}
if (super.cachedEndpoint != null) {
_call.setTargetEndpointAddress(super.cachedEndpoint);
}
if (super.cachedTimeout != null) {
_call.setTimeout(super.cachedTimeout);
}
if (super.cachedPortName != null) {
_call.setPortName(super.cachedPortName);
}
java.util.Enumeration keys = super.cachedProperties.keys();
while (keys.hasMoreElements()) {
java.lang.String key = (java.lang.String) keys.nextElement();
if(_call.isPropertySupported(key))
_call.setProperty(key, super.cachedProperties.get(key));
else
_call.setScopedProperty(key, super.cachedProperties.get(key));
}
return _call;
}
catch (java.lang.Throwable t) {
throw new org.apache.axis.AxisFault("Failure trying to get the Call object", t);
}
}
public java.lang.String loadXML(java.lang.String sProcessID, byte[] sXMLSourceData, java.lang.String
sXSLTFileName) throws java.rmi.RemoteException {
if (super.cachedEndpoint == null) {
throw new org.apache.axis.NoEndPointException();
}
org.apache.axis.client.Call _call = createCall();
_call.addParameter(new javax.xml.namespace.QName("", "sProcessID"), new
javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"), java.lang.String.class,
javax.xml.rpc.ParameterMode.IN);
_call.addParameter(new javax.xml.namespace.QName("", "sXMLSourceData"), new
javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "base64Binary"), byte[].class,
javax.xml.rpc.ParameterMode.IN);
_call.addParameter(new javax.xml.namespace.QName("", "sXSLTFileName"), new
javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"), java.lang.String.class,
javax.xml.rpc.ParameterMode.IN);
_call.setReturnType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"),
java.lang.String.class);
_call.setUseSOAPAction(true);
_call.setSOAPActionURI("");
_call.setOperationStyle("rpc");
_call.setOperationName(new javax.xml.namespace.QName("urn:gmsap207", "loadXML"));
java.lang.Object _resp = _call.invoke(new java.lang.Object[] {sProcessID, sXMLSourceData,
sXSLTFileName});
if (_resp instanceof java.rmi.RemoteException) {
throw (java.rmi.RemoteException)_resp;
}
else {
try {
return (java.lang.String) _resp;
} catch (java.lang.Exception _exception) {
return (java.lang.String) org.apache.axis.utils.JavaUtils.convert(_resp, java.lang.String.class);
}
}
}
}
undeploy.wsdd
<!-- Use this file to undeploy some handlers/chains and services -->
<!-- Two ways to do this:
-->
<!-- java org.apache.axis.client.AdminClient undeploy.wsdd
-->
<!-- after the axis server is running
-->
<!-- or
-->
<!-- java org.apache.axis.utils.Admin client|server undeploy.wsdd -->
<!-- from the same directory that the Axis engine runs
-->
<undeployment
xmlns="http://xml.apache.org/axis/wsdd/">
<!-- Services from GMFinancial_To_SapCore_207Service WSDL service -->
<service name="gmsap207"/>
</undeployment>
All the files must now be inserted into CVS. Take help from system administrators group to
add files to CVS.
5. Modify aeiconfig.properties
aeiconfig.properties
Before
SYSTEM_LOG = c:\winnt\system32\LogFiles\Persist.log
FRAME_LOG = c:\\JFWTest.log
SAP_CORE =
clientNu=200/user=GASMASTERINT/password=stxx@91b/lang=en/server=SAPTST01/serverNu=01
SAP_CORE_206_SAPDEV01 =
clientNu=200/user=GASMASTERINT/password=stxx@91b/lang=en/server=SAPTST01/serverNu=01
SAP_200_SAPDEV01 =
clientNu=200/user=GASMASTERINT/password=stxx@91b/lang=en/server=SAPTST01/serverNu=01
SAP_1070_SAPDEV01 =
clientNu=200/user=TOWINT/password=ace@pra/lang=en/server=SAPTST01/serverNu=01
SAP_2050_SAPDEV01 =
clientNu=200/user=GASMASTERINT/password=stxx@91b/lang=en/server=SAPTST01/serverNu=01
SAP_2030_SAPDEV01 =
clientNu=200/user=GASMASTERINT/password=stxx@91b/lang=en/server=SAPTST01/serverNu=01
SAP_2040_SAPDEV01 =
clientNu=200/user=GASMASTERINT/password=stxx@91b/lang=en/server=SAPTST01/serverNu=01
SAP_1080_SAPDEV01 =
clientNu=200/user=TOWINT/password=ace@pra/lang=en/server=SAPTST01/serverNu=01
After
SYSTEM_LOG = c:\winnt\system32\LogFiles\Persist.log
FRAME_LOG = c:\\JFWTest.log
SAP_CORE =
clientNu=200/user=GASMASTERINT/password=stxx@91b/lang=en/server=SAPTST01/serverNu=01
SAP_CORE_206_SAPDEV01 =
clientNu=200/user=GASMASTERINT/password=stxx@91b/lang=en/server=SAPTST01/serverNu=01
SAP_CORE_207_SAPDEV01 =
clientNu=200/user=GASMASTERINT/password=stxx@91b/lang=en/server=SAPTST01/serverNu=01
SAP_200_SAPDEV01 =
clientNu=200/user=GASMASTERINT/password=stxx@91b/lang=en/server=SAPTST01/serverNu=01
SAP_1070_SAPDEV01 =
clientNu=200/user=TOWINT/password=ace@pra/lang=en/server=SAPTST01/serverNu=01
SAP_2050_SAPDEV01 =
clientNu=200/user=GASMASTERINT/password=stxx@91b/lang=en/server=SAPTST01/serverNu=01
SAP_2030_SAPDEV01 =
clientNu=200/user=GASMASTERINT/password=stxx@91b/lang=en/server=SAPTST01/serverNu=01
SAP_2040_SAPDEV01 =
clientNu=200/user=GASMASTERINT/password=stxx@91b/lang=en/server=SAPTST01/serverNu=01
SAP_1080_SAPDEV01 =
clientNu=200/user=TOWINT/password=ace@pra/lang=en/server=SAPTST01/serverNu=01
6. Modify propertiesInterface.java
PropertiesInterface.java
Before
/************************************************************************
** SAPCORE RFC ACCESS PROPERTIES Dated: 04/17/2003
** Integration ID 206 - From GM Financial (Credit & Debits) TO SAPCORE
*************************************************************************/
public String sSAPGenericFunctionName = "Z_PRA_INBOUND_CONTROLLER";
public String sSAPImportObjIDImportParameter = "OBJECT_TYPE";
public String sSAPImportCommandImportParameter = "COMMAND";
public String sSAPImportConnectionIDImportParameter = "CONN_ID";
public String sSAPImportDataLoadTable = "IN_XML_TABLE";
public String sSAPExportErrorTable = "ERR_TAB";
public String sSAPCoreSystemConnection_206 = "SAP_CORE_206_SAPDEV01"; //USED by both Integration
ID 206 & 200
public String sSAPSystemConnection_200 = "SAP_200_SAPDEV01";
public String sSAPSystemConnection_1070 = "SAP_1070_SAPDEV01";
public String sSAPSystemConnection_1080 = "SAP_1080_SAPDEV01";
public String sSAPSystemConnection_2050 = "SAP_2050_SAPDEV01";
public String sSAPSystemConnection_2040 = "SAP_2040_SAPDEV01";
public String sSAPSystemConnection_2030 = "SAP_2030_SAPDEV01";
public String sSAPRepositoryName_206 = "AEIRepository_206"; //USED by both Integration ID 206 & 200
public String sSAPRepositoryName_1070 = "AEIRepository_1070";
public String sSAPRepositoryName_1080 = "AEIRepository_1080";
public String sSAPRepositoryName_2050 = "AEIRepository_2050";
public String sSAPRepositoryName_2040 = "AEIRepository_2040";
public String sSAPRepositoryName_2030 = "AEIRepository_2030";
public String sSAPImportDataLoadTableFieldName = "LINE";
After
/************************************************************************
** SAPCORE RFC ACCESS PROPERTIES Dated: 04/17/2003
** Integration ID 206 - From GM Financial (Credit & Debits) TO SAPCORE
** Integration ID 207 Added on May 12, 2005
*************************************************************************/
public String sSAPGenericFunctionName = "Z_PRA_INBOUND_CONTROLLER";
public String sSAPImportObjIDImportParameter = "OBJECT_TYPE";
public String sSAPImportCommandImportParameter = "COMMAND";
public String sSAPImportConnectionIDImportParameter = "CONN_ID";
public String sSAPImportDataLoadTable = "IN_XML_TABLE";
public String sSAPExportErrorTable = "ERR_TAB";
public String sSAPCoreSystemConnection_206 = "SAP_CORE_206_SAPDEV01"; //USED by both Integration
ID 206 & 200
public String sSAPCoreSystemConnection_207 = "SAP_CORE_207_SAPDEV01";
public String sSAPSystemConnection_200 = "SAP_200_SAPDEV01";
public String sSAPSystemConnection_1070 = "SAP_1070_SAPDEV01";
public String sSAPSystemConnection_1080 = "SAP_1080_SAPDEV01";
public String sSAPSystemConnection_2050 = "SAP_2050_SAPDEV01";
public String sSAPSystemConnection_2040 = "SAP_2040_SAPDEV01";
public String sSAPSystemConnection_2030 = "SAP_2030_SAPDEV01";
public String sSAPRepositoryName_206 = "AEIRepository_206"; //USED by both Integration ID 206 & 200
public String sSAPRepositoryName_207 = "AEIRepository_207";
public String sSAPRepositoryName_1070 = "AEIRepository_1070";
public String sSAPRepositoryName_1080 = "AEIRepository_1080";
public String sSAPRepositoryName_2050 = "AEIRepository_2050";
public String sSAPRepositoryName_2040 = "AEIRepository_2040";
public String sSAPRepositoryName_2030 = "AEIRepository_2030";
public String sSAPImportDataLoadTableFieldName = "LINE";
7. Modify server-config.wsdd
server-config.wsdd
Server-config.wsdd is modified to reflect the new web service that has been setup with
entries in UDDI and ENS (Separate documents for screen shots of UDDI and ENS).
Before
<service name="gmsap206" provider="java:RPC">
<operation name="loadXML" qname="ns18:loadXML" returnQName="loadXMLReturn" returnType="xsd:string"
xmlns:ns18="urn:gmsap206" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<parameter name="sProcessID" type="xsd:string"/>
<parameter name="sXMLSourceData" type="xsd:base64Binary"/>
<parameter name="sXSLTFileName" type="xsd:string"/>
</operation>
<parameter name="allowedMethods" value="loadXML"/>
<parameter name="wsdlPortType" value="GMFinancial_To_SapCore_206"/>
<parameter name="scope" value="Request"/>
<parameter name="className" value="com.aei.sap.inbound.gmsap206.ws.Gmsap206SoapBindingImpl"/>
<parameter name="wsdlServicePort" value="gmsap206"/>
<parameter name="wsdlTargetNamespace" value="urn:gmsap206"/>
<parameter name="wsdlServiceElement" value="GMFinancial_To_SapCore_206Service"/>
<service name="gmsap2050" provider="java:RPC">
<operation name="loadXML" qname="ns13:loadXML" returnQName="loadXMLReturn" returnType="xsd:string"
xmlns:ns13="urn:gmsap2050" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<parameter name="sProcessID" type="xsd:string"/>
<parameter name="sXMLSourceData" type="xsd:base64Binary"/>
<parameter name="sXSLTFileName" type="xsd:string"/>
</operation>
<parameter name="allowedMethods" value="loadXML"/>
<parameter name="wsdlPortType" value="GMMarketing_To_PRA_2050"/>
<parameter name="scope" value="Request"/>
<parameter name="className" value="com.aei.sap.inbound.gmsap2050.ws.Gmsap2050SoapBindingImpl"/>
<parameter name="wsdlServicePort" value="gmsap2050"/>
<parameter name="wsdlTargetNamespace" value="urn:gmsap2050"/>
<parameter name="wsdlServiceElement" value="GMMarketing_To_PRA_2050Service"/>
</service>
After
<service name="gmsap206" provider="java:RPC">
<operation name="loadXML" qname="ns18:loadXML" returnQName="loadXMLReturn" returnType="xsd:string"
xmlns:ns18="urn:gmsap206" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<parameter name="sProcessID" type="xsd:string"/>
<parameter name="sXMLSourceData" type="xsd:base64Binary"/>
<parameter name="sXSLTFileName" type="xsd:string"/>
</operation>
<parameter name="allowedMethods" value="loadXML"/>
<parameter name="wsdlPortType" value="GMFinancial_To_SapCore_206"/>
<parameter name="scope" value="Request"/>
<parameter name="className" value="com.aei.sap.inbound.gmsap206.ws.Gmsap206SoapBindingImpl"/>
<parameter name="wsdlServicePort" value="gmsap206"/>
<parameter name="wsdlTargetNamespace" value="urn:gmsap206"/>
<parameter name="wsdlServiceElement" value="GMFinancial_To_SapCore_206Service"/>
</service>
<service name="gmsap207" provider="java:RPC">
<operation name="loadXML" qname="ns22:loadXML" returnQName="loadXMLReturn" returnType="xsd:string"
xmlns:ns22="urn:gmsap207" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<parameter name="sProcessID" type="xsd:string"/>
<parameter name="sXMLSourceData" type="xsd:base64Binary"/>
<parameter name="sXSLTFileName" type="xsd:string"/>
</operation>
<parameter name="allowedMethods" value="loadXML"/>
<parameter name="wsdlPortType" value="GMFinancial_To_SapCore_207"/>
<parameter name="scope" value="Request"/>
<parameter name="className" value="com.aei.sap.inbound.gmsap207.ws.Gmsap207SoapBindingImpl"/>
<parameter name="wsdlServicePort" value="gmsap207"/>
<parameter name="wsdlTargetNamespace" value="urn:gmsap207"/>
<parameter name="wsdlServiceElement" value="GMFinancial_To_SapCore_207Service"/>
</service>
<service name="gmsap2050" provider="java:RPC">
<operation name="loadXML" qname="ns13:loadXML" returnQName="loadXMLReturn" returnType="xsd:string"
xmlns:ns13="urn:gmsap2050" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<parameter name="sProcessID" type="xsd:string"/>
<parameter name="sXMLSourceData" type="xsd:base64Binary"/>
<parameter name="sXSLTFileName" type="xsd:string"/>
</operation>
<parameter name="allowedMethods" value="loadXML"/>
<parameter name="wsdlPortType" value="GMMarketing_To_PRA_2050"/>
<parameter name="scope" value="Request"/>
<parameter name="className" value="com.aei.sap.inbound.gmsap2050.ws.Gmsap2050SoapBindingImpl"/>
<parameter name="wsdlServicePort" value="gmsap2050"/>
<parameter name="wsdlTargetNamespace" value="urn:gmsap2050"/>
<parameter name="wsdlServiceElement" value="GMMarketing_To_PRA_2050Service"/>
</service>
8. Modify sapservices.properties
sapservicesBuild.xml
Before
<!-Compile integration point 206 Web Services Classes
-->
- <target name="compile206" depends="compile1070">
- <javac srcdir="${wscompile.dir}\gmsap206" destdir="${build.dir}"
classpathref="integration.class.path" debug="${debug}" optimize="${optimize}"
deprecation="${deprecation}">
<include name="**/*.java" />
<exclude name="**/CVS/*" />
<exclude name="**/CVS/Base/*" />
</javac>
- <copy todir="${inbound.dir}/gmsap206">
- <fileset dir="${build.dir}/com/aei/sap/inbound/gmsap206">
<include name="**/*.wsdd" />
<include name="**/*.class" />
<exclude name="**/*.java" />
</fileset>
</copy>
</target>
- <!-Compile integration point 2040 Web Services Classes
-->
- <target name="compile2040" depends="compile207">
- <javac srcdir="${wscompile.dir}\gmsap2040" destdir="${build.dir}"
classpathref="integration.class.path" debug="${debug}" optimize="${optimize}"
deprecation="${deprecation}">
<include name="**/*.java" />
<exclude name="**/CVS/*" />
<exclude name="**/CVS/Base/*" />
</javac>
- <copy todir="${inbound.dir}/gmsap2040">
- <fileset dir="${build.dir}/com/aei/sap/inbound/gmsap2040">
<include name="**/*.wsdd" />
<include name="**/*.class" />
<exclude name="**/*.java" />
</fileset>
</copy>
</target>
After
<!-Compile integration point 206 Web Services Classes
-->
- <target name="compile206" depends="compile1070">
- <javac srcdir="${wscompile.dir}\gmsap206" destdir="${build.dir}"
classpathref="integration.class.path" debug="${debug}" optimize="${optimize}"
deprecation="${deprecation}">
<include name="**/*.java" />
<exclude name="**/CVS/*" />
<exclude name="**/CVS/Base/*" />
</javac>
- <copy todir="${inbound.dir}/gmsap206">
- <fileset dir="${build.dir}/com/aei/sap/inbound/gmsap206">
<include name="**/*.wsdd" />
<include name="**/*.class" />
<exclude name="**/*.java" />
</fileset>
</copy>
</target>
- <!-Compile integration point 207 Web Services Classes
-->
- <target name="compile207" depends="compile206">
- <javac srcdir="${wscompile.dir}\gmsap207" destdir="${build.dir}"
classpathref="integration.class.path" debug="${debug}" optimize="${optimize}"
deprecation="${deprecation}">
<include name="**/*.java" />
<exclude name="**/CVS/*" />
<exclude name="**/CVS/Base/*" />
</javac>
- <copy todir="${inbound.dir}/gmsap207">
- <fileset dir="${build.dir}/com/aei/sap/inbound/gmsap207">
<include name="**/*.wsdd" />
<include name="**/*.class" />
<exclude name="**/*.java" />
</fileset>
</copy>
</target>
- <!-Compile integration point 2040 Web Services Classes
-->
- <target name="compile2040" depends="compile207">
- <javac srcdir="${wscompile.dir}\gmsap2040" destdir="${build.dir}"
classpathref="integration.class.path" debug="${debug}" optimize="${optimize}"
deprecation="${deprecation}">
<include name="**/*.java" />
<exclude name="**/CVS/*" />
<exclude name="**/CVS/Base/*" />
</javac>
- <copy todir="${inbound.dir}/gmsap2040">
- <fileset dir="${build.dir}/com/aei/sap/inbound/gmsap2040">
<include name="**/*.wsdd" />
<include name="**/*.class" />
<exclude name="**/*.java" />
</fileset>
</copy>
</target>
9. Check In Code to CVS
Take help from system administrator group to check in modified code to CVS repository.
10. Run UNIX Script pushversion
PushVersion UNIX script is executed by system administrator group. After pushversion completes
execution the new SAP Web Service is available.
PushVersion starts and stops AII components.
Below are the steps for a successful push in the UNIX:
a) copy /apps/users/devel/BuildFiles/sapservicesBuild.xml from DBDEV01 to INTTST01
/apps/users/devel/BuildFiles/sapservicesBuild.xml
b) Modify
/apps/configs/apps/devel/webapps/sapservices/WEB-INF/classes/com/aei/conf/aeiconfig.properties
and then copy the it to
/apps/devel/webapps/sapservices/WEB-INF/classes/com/aei/conf/aeiconfig.properties
c) Run PushVersion script. To compile only the SAP services webapps, change the following to No: Fuego
component installation, Apache Integration webapps and CRON emailer.
d) Stop the DBDEV01
/etc/init.d/INTEGRATION stop
e) Start the DBDEV01
/etc/init.d/INTEGRATION start
f)
Test selected or all Integration points to make sure if they all work.
Environment
Server name
Development
DBDEV01
Test
INTTST01
Production
INTPRD01
11. Create a new XSLT file.
Create the XSLT file to obtain the XML structure as required by the Target system based on the
Source XML file. Use XMLspy or Textpad to create or modify your XSLT file.
Below is an example of XSLT file :
12. Set-up function modules, structures and parameters in SAP.
Name
Type
Description
Action
Z_PRA_INBOUND_CONTROLLER
Function
module
SAP Function module used by all
the Inbound Integration web
services.
Modify
Z_PRA_GM_XML_WRAPPER
Function
module
SAP Function module that will
parse Inbound XML and call
Business Object API to process.
Modify
Z_PRA_GM_TO_AR_POST
Function
module
Custom function module to post
Gas Master account receivables
records into SAP AR. If the
record does not post, then it will
pass error messages to the calling
program.
Create
ZPS_XML_TABLES
Program
Program to download/upload new
integration entries into tables:
OIUT3_CLUSTERS,
OIUT3_OBJ_KEYS,
OIUT3_OBJ_MAP,
OIUT3_OBJ_MAP_TY,
ZPRETX_XML_LOGS. But, for
the initial step, set-up the new
business objects in DEV, it should
be done by executing the program
“ZROIUT3_XML_SERVER_UTILI
TY” (XML Server - Business
Object Definition Utility). Also, for
initial creation of entries in tables
OIUT3_OBJ_KEYS and
ZPRETX_XML_LOGS, go to
transaction SE16 and click on
create/change button. Make sure
press the save button after the
updates. Program
ZPS_XML_TABLES is only being
used when moving the XML
parameters for new integration
from DEV into SAP TST and SAP
PRD systems.
Modify
ZGM_TO_AR_HEADER
Structure
Gas Master interface to SAP AR
header structure
Create
ZGM_TO_AR_HEADER_TAB
Table type
Table for ZGM_TO_AR_HEADER
Create
ZGM_TO_AR_DETAIL
Structure
Gas Master interface to SAP AR
detail structure
Create
ZGM_TO_AR_DETAIL_TAB
Table type
Table for ZGM_TO_AR_DETAIL
Create
References:
1) How to use “XML Server - Business Object Definition Utility”  go to this path/filename for the
User’s Guide
N:\Houston\Dept\IT\Public\ACE\Cross Team\Fuego Documentation\XMLInfrastructure - User Guide.doc
2) How to execute program ZPS_XML_TABLES in SAP.  go to this path/filename for the
procedure
N:\Houston\Dept\IT\Private\IP 2070\Docs\How to execute program ZPS_XML_TABLES .doc
13. Troubleshooting
A tool has been developed by Apache to monitor troubleshoot. Here are the screenshots:
Related documents