Few Cents SAP CPI/HCI EDI Iflow with 997
This Blog gives you a brief overiew of CPI/HCI EDI Integration
SAP has released HCI EDI integrations for enterprise license account holders only
The technical procedure of HCI edi integration is almost like a see-burger or B2B ADD ON using splitter to split the messages and converter to convert edi to xml and there after mapping conversion
Step1: Download available schema (xsd) ex:850 PO from portal to local NFS
Step 2:- Import the schema’s to i-flow
Step 3:- Use EDI Splitter to split Interchange document and EDI to XML converter to convert EDI data to xml and mapping conversion to convert EDI XMl to IDOC XML
IFLOW – this needs to be modified as per requirements
Give all the required parameters mentioned in below help documents and maintain control number ranges and other inputs then execute checks for errors, deploy and test
https://help.sap.com/viewer/368c481cd6954bdfa5d0435479fd4eaf/Cloud/en-US/584a3beb81454d40acb052ae371c7063.html
997:-
Select 997 required or not required
Select if 997 control number needs to be created newly or use it from request EDI message
Select if you want to exclude or include optional AK3 and AK4 segments
EDI Splitter Configuration
XML-EDI-Converter
EDI-XML-Converter
NRO Configuration:-
Script to read NRO
import com.sap.it.api.ITApiFactory;
import com.sap.it.api.nrc.NumberRangeConfigurationService;
import com.sap.it.api.nrc.exception. NumberRangeConfigException;
import com.sap.gateway.ip.core.customdev.util.Message;
import java.util.HashMap;
def Message processData(Message message) {
def service = ITApiFactory.getApi(NumberRangeConfigurationService.class, null);
if( service != null)
{
def value = service.getNextValuefromNumberRange(“NRO_NAME”,null);
message.setHeader(“NRO_NAME”, value)
message.setProperty(“Empty_String”, ”)
}
return message;
}
Control Segments
Set Control segments using run time values or constant
Example : Body of Control segments in Content modifier
<?xml version=”1.0″ encoding=”UTF-8″?>
<n1:Interchange xsi:schemaLocation=”urn:sap.com:typesystem:b2b:116:asc-x12:810:004010 ASC-X12_810_004010.xsd” xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” xmlns:n1=”urn:sap.com:typesystem:b2b:116:asc-x12:810:004010″>
<S_ISA>
<D_I01>${property.AuthorizationInformationQualifier}</D_I01>
<D_I02>${property.AuthorizationInformation}</D_I02>
<D_I03>${property.SecurityInformationQualifier}</D_I03>
<D_I04>${property.SecurityInformation}</D_I04>
<D_I05_1>${property.InterchangeIDQualifier_Sender}</D_I05_1>
<D_I06>${property.InterchangeSenderID}</D_I06>
<D_I05_2>${property.InterchangeIDQualifier_Receiver}</D_I05_2>
<D_I07>${property.InterchangeReceiverID}</D_I07>
<D_I08>${property.InterchangeDate}</D_I08>
<D_I09>${property.InterchangeTime}</D_I09>
<D_I10>U</D_I10>
<D_I11>${property.InterchangeControlVersionNumber}</D_I11>
<D_I12>${property.InterchangeControlNumber}</D_I12>
<D_I13>${property.AcknowledgmentRequested}</D_I13>
<D_I14>${property.UsageIndicator}</D_I14>
<D_I15>${property.ComponentElementSeparator}</D_I15>
</S_ISA>
<FunctionalGroup>
<S_GS>
<D_479>${property.FunctionalIdentifierCode}</D_479>
<D_142>${property.ApplicationSendersCode}</D_142>
<D_124>${property.ApplicationReceiversCode}</D_124>
<D_373>${property.Date}</D_373>
<D_337>${property.Time}</D_337>
<D_28>${property.GroupControlNumber}</D_28>
<D_455>${property.ResponsibleAgencyCode}</D_455>
<D_480>${property.VersionReleaseIndustryIdentifierCode}</D_480>
</S_GS>
${header.ExtractedMessage}——————> Note this is set in content modifier to capture incomming payload
<S_GE>
<D_97>${property.NumberofTransactionSetsIncluded}</D_97>
<D_28>${property.GroupControlNumber}</D_28>
</S_GE>
</FunctionalGroup>
<S_IEA>
<D_I16>${property.NumberofIncludedFunctionalGroups}</D_I16>
<D_I12>${property.InterchangeControlNumber}</D_I12>
</S_IEA>
</n1:Interchange>
Set Content modifier body by reading values using property
Example : Schema and Mapping
Additional Info
If you are importing map from PI/PO by default UDF will work at run time, you don’t have to make any changes to UDF to convert to groovy or java script, however you will not be able to see the UDF code as you will get warning as shown below… here “shiftnegativevalue” is UDF imported from PI Map which works same as PI in runtime
Hello Sudheer,
Download option will be available for both Artifacts & Documents only if the package mode is "Editable" if the package mode is "Configure-only", then download option won't be available for both Artifacts and Documents.
Thanks,
Sathish
Hi Satish,
Very true, however ANSI X12 is configure only and EDIFACT is editable, so I explained it in generic way