
<?xml version="1.0" encoding="UTF-8"?>
<schema targetNamespace="http://www.example.org/basic_employee_import" elementFormDefault="unqualified" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://www.example.org/basic_employee_import">
<complexType name="list_employee_type">
<sequence>
<element name="employee" type="tns:employee_type"
maxOccurs="unbounded" minOccurs="1">
</element>
</sequence>
</complexType>
<complexType name="employee_type">
<sequence>
<element name="PersonUUID" type="string" maxOccurs="1"
minOccurs="0">
</element>
<element name="PersonExternalID" type="string" maxOccurs="1"
minOccurs="0">
</element>
<element name="Username" type="string" maxOccurs="1"
minOccurs="0">
</element>
<element name="BusinessPartnerRole" type="string"
maxOccurs="1" minOccurs="0">
</element>
<element name="Supplier" type="string" maxOccurs="1"
minOccurs="0">
</element>
<element name="FirstName" type="string" maxOccurs="1"
minOccurs="0">
</element>
<element name="LastName" type="string" maxOccurs="1"
minOccurs="0">
</element>
<element name="PersonFullName" type="string" maxOccurs="1"
minOccurs="0">
</element>
<element name="GenderCode" type="string" maxOccurs="1"
minOccurs="0">
</element>
<element name="EmailAddress" type="string" maxOccurs="1"
minOccurs="0">
</element>
<element name="PhoneNumber" type="string" maxOccurs="1"
minOccurs="0">
</element>
<element name="MobilePhoneNumber" type="string"
maxOccurs="1" minOccurs="0">
</element>
<element name="Language" type="string" maxOccurs="1"
minOccurs="0">
</element>
<element name="CompanyCode" type="string" maxOccurs="1"
minOccurs="0">
</element>
<element name="CostCenter" type="string" maxOccurs="1"
minOccurs="0">
</element>
<element name="StartDate" type="string" maxOccurs="1"
minOccurs="0">
</element>
<element name="EndDate" type="string" maxOccurs="1"
minOccurs="0">
</element>
<element name="PersonWorkAgreementUUID" type="string"
maxOccurs="1" minOccurs="0">
</element>
<element name="PersonWorkAgreementExternalID" type="string" maxOccurs="1" minOccurs="0"></element>
</sequence>
</complexType>
<element name="root" type="tns:list_employee_type"></element>
</schema>
import com.sap.gateway.ip.core.customdev.util.Message;
import java.lang.StringBuilder;
import javax.xml.namespace.NamespaceContext;
import java.util.HashMap;
import javax.xml.xpath.XPath;
import javax.xml.xpath.XPathConstants;
import javax.xml.xpath.XPathFactory;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.w3c.dom.Document;
class localNamespaceContext implements NamespaceContext {
public String getNamespaceURI(String prefix) {
if (prefix.equals("n0")) return "http://sap.com/xi/PASEIN";
}
public String getPrefix(String uri) {
throw new UnsupportedOperationException();
}
public Iterator getPrefixes(String uri) {
throw new UnsupportedOperationException();
}
}
def Message processData(Message message) {
def sourceDocument = message.getBody(org.w3c.dom.Document);
XPathFactory factory = XPathFactory.newInstance();
XPath xPath = factory.newXPath();
xPath.setNamespaceContext(new localNamespaceContext());
StringBuilder finalMessage = new StringBuilder();
for (Node logNode : (NodeList) xPath.evaluate("//n0:WorkforcePersonMasterDataReplicationResponse_sync/WorkforcePersonMasterDataReplResponse", sourceDocument, XPathConstants.NODESET)) {
if(logNode!=null){
// Read ProcessStatusCode
Node processingStatusNode = ((Node) xPath.evaluate("./ProcessingStatusCode", logNode, XPathConstants.NODE));
String processingStatusValue = processingStatusNode.getTextContent();
int processingStatusValueInt = (Integer.valueOf(processingStatusValue)).intValue();
// Read PersonExternalID
Node personExternalIdNode = ((Node) xPath.evaluate("./PersonExternalID", logNode, XPathConstants.NODE));
String personExternalIdValue = personExternalIdNode.getTextContent();
// Read PersonUUID
Node personUUIDNode = ((Node) xPath.evaluate("./PersonUUID", logNode, XPathConstants.NODE));
String personPersonUUIDValue = personUUIDNode.getTextContent();
//process workAgreementNode
for (Node workAgreementNode : (NodeList) xPath.evaluate("./WorkforcePersonMasterDataReplConfLogMessage", logNode, XPathConstants.NODESET)) {
finalMessage.append(personExternalIdValue+",");
finalMessage.append(personPersonUUIDValue+",");
finalMessage.append(processingStatusValue+",");
Node personWorkAgreementExternalIdNode = ((Node) xPath.evaluate("./PersonWorkAgreementExternalID", workAgreementNode, XPathConstants.NODE));
String personWorkAgreementExternalIdValue = personWorkAgreementExternalIdNode.getTextContent();
finalMessage.append(personWorkAgreementExternalIdValue+",");
Node personWorkAgreementUUIDNode = ((Node) xPath.evaluate("./PersonWorkAgreementUUID", workAgreementNode, XPathConstants.NODE));
String personWorkAgreementUUIDValue = personWorkAgreementUUIDNode.getTextContent();
finalMessage.append(personWorkAgreementUUIDValue+"\n");
}
}
}
message.setBody(finalMessage.toString());
return message;
}
<?xml version="1.0" encoding="UTF-8"?>
<ns0:root xmlns:ns0="http://www.example.org/basic_employee_import">
<employee>
<PersonUUID>
</PersonUUID>
<PersonExternalID>ET407</PersonExternalID>
<Username>
</Username>
<BusinessPartnerRole>BUP003</BusinessPartnerRole>
<Supplier>
</Supplier>
<FirstName>Harvey</FirstName>
<LastName>Specter</LastName>
<PersonFullName>Harvey Specter</PersonFullName>
<GenderCode>1</GenderCode>
<EmailAddress>
</EmailAddress>
<PhoneNumber>
</PhoneNumber>
<MobilePhoneNumber>
</MobilePhoneNumber>
<Language>EN</Language>
<CompanyCode>1010</CompanyCode>
<CostCenter>
</CostCenter>
<StartDate>20170401</StartDate>
<EndDate>99991231</EndDate>
<PersonWorkAgreementUUID>
</PersonWorkAgreementUUID>
<PersonWorkAgreementExternalID>ET407-1</PersonWorkAgreementExternalID>
</employee>
</ns0:root>
<?xml version="1.0" encoding="UTF-8"?>
<ns3:WorkforcePersonMasterDataReplicationRequest_sync xmlns:ns3="http://sap.com/xi/PASEIN">
<WorkforcePersonMasterData>
<PersonUUID>79fb0c90-cc78-4d2f-98f7-a03d1871d909</PersonUUID>
<PersonExternalID>ET407</PersonExternalID>
<UserName>
</UserName>
<PersonalInformation>
<FirstName>Harvey</FirstName>
<LastName>Specter</LastName>
<PersonFullName>Harvey Specter</PersonFullName>
<GenderCode>1</GenderCode>
</PersonalInformation>
<WorkAgreementInformation>
<PersonWorkAgreementUUID>4678d2bc-3dbc-45e4-a526-3ecee631191b</PersonWorkAgreementUUID>
<PersonWorkAgreementExternalID>ET407-1</PersonWorkAgreementExternalID>
<PersonWorkAgreementType>1</PersonWorkAgreementType>
<WorkAgreementJobInformation>
<ValidityPeriod>
<StartDate>2017-04-01</StartDate>
<EndDate>9999-12-31</EndDate>
</ValidityPeriod>
<WorkAgreementStatus>1</WorkAgreementStatus>
<CompanyCode>1010</CompanyCode>
<CostCenter>
</CostCenter>
</WorkAgreementJobInformation>
</WorkAgreementInformation>
</WorkforcePersonMasterData>
</ns3:WorkforcePersonMasterDataReplicationRequest_sync>
<n0:WorkforcePersonMasterDataReplicationResponse_sync xmlns:n0="http://sap.com/xi/PASEIN" xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:prx="urn:sap.com:proxy:EAY:/1SAI/TAS47FED14EF0DCEA2C4738:772">
<WorkforcePersonMasterDataReplResponse>
<PersonUUID>79fb0c90-cc78-4d2f-98f7-a03d1871d909</PersonUUID>
<PersonExternalID>ET407</PersonExternalID>
<ProcessingStatusCode>01</ProcessingStatusCode>
<WorkforcePersonMasterDataReplConfLogMessage>
<PersonWorkAgreementUUID>4678d2bc-3dbc-45e4-a526-3ecee631191b</PersonWorkAgreementUUID>
<PersonWorkAgreementExternalID>ET407-1</PersonWorkAgreementExternalID>
<PersonWorkAgreement>50004703</PersonWorkAgreement>
<LogItem>
<TypeID>057(ECPAO_IN_PROCESSING)</TypeID>
<SeverityCode>I</SeverityCode>
<Note>Replication of employee data was successful for Employee ID ET407</Note>
</LogItem>
</WorkforcePersonMasterDataReplConfLogMessage>
</WorkforcePersonMasterDataReplResponse>
</n0:WorkforcePersonMasterDataReplicationResponse_sync>
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
31 | |
5 | |
4 | |
3 | |
3 | |
3 | |
2 | |
2 | |
2 | |
2 |