File to file mapping without xml
Hello,
is there a possible way to use a PI7.1 file to file mapping (one static-positioned field must be mapped) without storing the file in xml format ?
We are having a flatfile and have to send this flatfile through our jms receiver adapter(as flatfile structure) but there is one important field which has to be mapped/changed(static value for all files).
Our SAP Applikation (File sender) would avoid to change this during or after creating the flatfiles in the R/3 System.
Thanks,
Gordon
Hi Gordon,
>- Do you have an example for that abap mapping ?
DATA g_str TYPE string.
CALL FUNCTION 'ECATT_CONV_XSTRING_TO_STRING'
EXPORTING
im_xstring = source
im_encoding = 'UTF-8'
IMPORTING
ex_string = g_str.
REPLACE 'ABC' WITH 'XYZ' INTO g_str.
CALL FUNCTION 'ECATT_CONV_STRING_TO_XSTRING'
EXPORTING
im_string = g_str
im_encoding = 'UTF-8'
IMPORTING
ex_xstring = result.
>I think i have to use some entry parameters for my interface right ?
?? no..
>- Is it possible to use that within the integrated configuration ?
?? yes..
Regards,
Udo
Similar Messages
-
How to remove a font file and its mapping from XML Publisher Administrator
Hello,
I am trying to remove a font file and its mapping from the XML Publisher Administrator. If this is not possible, is there a way to disable it?
The reason why I am asking this is because we just got a new check printer, and I was able to print just fine. However, the MICR font was not coming up properly on the check, so I went ahead and configured the font with the XML Publisher Administrator. Now my check output is coming up blank after running the XML report publisher program. The only change I did was to upload the MICR font and mapped it.
My template and rdf report file are working fine in another environment we have, so I know that's not the problem.
Any help is appreciate it.
Thanks.This is how you do it
Font
DELETE FROM xdo_lobs
where lob_code like '<Font_name>';
Font Mapping Set
DELETE FROM xdo_font_mapping_sets_TL
WHERE mapping_code like '<MAPPING_CODE>' -
Can i run a servlet without a web.xml file for servlet mapping?
Hello everyone.
The code i want to run compiles and everythink looks ok.
It produces the .class file.
I run Tomcat 4.1 and i build my Web site with Dreamweaver.
I have a form in a page and i want to send the data upon form completion to a database i already have build with MySql.
The database is up and running and the server is set-up ok.
I have changed the port in Tomcat to run on port 80.
The directory i have my site is
Tomcat41\webapps\ROOT\se
and the directory where i keep the servlet class is
Tomcat41\webapps\ROOT\se\WEB-INF\servlet
I have a web.xml file to map the servlet and placed it in
Tomcat41\webapps\ROOT\se\WEB-INF
In the Form action i write action:"/servlets/Classes/GroupRegistration"
and I RECEIVE AN 404 ERROR FROM APACHE.
Somethink is wrong .
The following is the code from the GroupRegistration.java file
and follws the web.xml file.
Please Help.
import java.sql.*;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class GroupRegistration extends HttpServlet
Connection con;
public void doPost (HttpServletRequest req, HttpServletResponse res)
throws ServletException, java.io.IOException
handleForm(req, res);
public void init() throws ServletException {
try{
/* Loading the driver for the database */
Class.forName("com.mysql.jdbc.Driver");
Connection Con = DriverManager.getConnection("jdbc:mysql://localhost/se?user=luser&password=");
catch (ClassNotFoundException e) {
throw new UnavailableException("Couldn't load JdbcOdbcDriver");
catch (SQLException e) {
throw new UnavailableException("Couldn't get db connection");
private void handleForm(HttpServletRequest req, HttpServletResponse res)
throws ServletException {
//ServletOutputStream out = res.OutputStream();
//res.setContentType("text/html");
//Extract the form Data Here
String group = req.getParameter("GroupNo");
String Name1 = req.getParameter("Name1");
String LoginID1 = req.getParameter("LoginID1");
String Name2 = req.getParameter("Name2");
String LoginID2 = req.getParameter("LoginID2");
String Name3 = req.getParameter("Name3");
String LoginID3 = req.getParameter("LoginID3");
String Name4 = req.getParameter("Name4");
String LoginID4 = req.getParameter("LoginID4");
String URL = req.getParameter("URL");
String Title2 = req.getParameter("Title2");
String date = req.getParameter("date");
String INSERT = "INSERT INTO registration (groupno, name1, loginid1, name2, loginid2, name3, loginid3, name4, loginid4, url, topic, date) VALUES (" + group + "," + Name1 + "," + LoginID2 + "," + Name2 + "," + LoginID2 + "," + Name3 + "," + LoginID3 + "," + Name4 + "," + LoginID4 + "," + URL + "," + Title2 + "," + date + ")";
PreparedStatement pstmt = null;
try{
pstmt = con.prepareStatement(INSERT);
pstmt.executeUpdate();
catch (SQLException e) {
throw new ServletException(e);
finally {
try {
if (pstmt != null)pstmt.close();
catch (SQLException ignored){
The web.xml file
<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com.xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4">
<servlet>
<servlet-name>GroupRegistration</servlet-name>
<servlet-class>GroupRegistration</servlet-class>
</servlet>
<servlet-maping>
<servlet-name>GroupRegistration</servlet-name>
<url-pattern>/myGroupRegistration</url-patern>
</servlet-mapping>
</web-app>
I apreciate your time.
Thanks for any help.and the directory where i keep the servlet class is
Tomcat41\webapps\ROOT\se\WEB-INF\servletOthers have pointed out that "servlet" should be "classes", but there is another mistake that hasn't been spotted. If you want your servlet to appear in the root context, you should use:
Tomcat41\webapps\ROOT\WEB-INF\classes
If you want your servlet to appear under the /se context, then you should use:
Tomcat41\webapps\se\WEB-INF\classes
and also, in the latter case, your form action should be /se/myGroupRegistration. -
Renaming a File to File without Mapping
Hi All,
I am having a scenario where there is a text file transfer without any conversion i.e. basically a file to file scenario with no mapping. The only requirement is to rename source file which has .csv extn to .dat. For instance if the sender file is XYZ.csv, the file at the receiver side should be XYZ.dat.
As there is no mapping, I cannot use Dynamic Configuration UDF in mapping. One other option is to write an adapter module which seems too bulky for this small requirement. So as of now I am looking at any option which I can use without having to create IR objects or do text ->XML -> text conversion.
I hope experts here can help in resolving the current problem and/or give some pointers
Best Regards,
Pratik> OS Command in File Receiver Channel: mv %f `basename %f .csv`.dat
I think you should use the full path address, the same as you used for the folder.
You can also use an adapter module, it is just a couple of lines:
public ModuleData process(ModuleContext moduleContext, ModuleData inputModuleData)
throws ModuleException{
try {
Message msg = (Message) inputModuleData.getPrincipalData();
Payload payload = msg.getDocument();
String fileName = msg.getMessageProperty("http://sap.com/xi/XI/System/File","FileName");
// do something with the filename
msg.setMessageProperty("http://sap.com/xi/XI/System/File","FileName", fileName);
inputModuleData.setPrincipalData(msg);
} catch (Exception e) {
throw new ModuleException(e);
return inputModuleData; -
Hi my name is Dustin,
I am new to labview and teststand... I am trying to right multiple arrays of data to a single xml file. I can do this with a cluster but I have to create a variable for each of those arrays (21 arrays) and I was hoping to use the same variable for each array. Meaning I obtain my array of data write it to an xml file then replace that array in that variable with a new array and then call up my VI that writes that array to an xml file and write it to the same xml file underneath the first array without overwriting it. Attached is my VI I created to write an array to an xml file. Again I am wondering if there is a way to write multiple arrays to a single xml file at different times without overwriting the previous xml file.
Thanks
Solved!
Go to Solution.
Attachments:
Write_to_XML_File.vi 11 KBHi dlovell,
Check the attached example. I think it may help you.
Regards,
Nitz
(Give Kudos to Good Answers, Mark it as a Solution if your problem is Solved)
Attachments:
Write to XML.vi 17 KB -
Load XML file from addon domain without cross-domain Policy file
Hello.
Assuming that there are two addon domains on the same server: /public_html/domain1.com and /public_html/domain2.com
I try to load XML file from domain2.com into domain1.com without using cross-domain policy file (since it doesn’t work on xml files in my case).
So the idea is to use php file in order to load XML and read it back to flash.
I’ve found an interesting scripts that seems to do the job but unfortunately I can't get it to work. In my opinion there is somewhere problem with AS3 part. Please take a look.
Here are the AS3/PHP scripts:
AS3 (.swf in www.domain1.com):
// location of the xml that you would like to load, full http address
var xmlLoc:String = "http://www.domain2.com/MyFile.xml";
// location of the php xml grabber file, in relation to the .swf
var phpLoc:String = "loadXML.php";
var xml:XML;
var loader:URLLoader = new URLLoader();
var request:URLRequest = new URLRequest(phpLoc+"?location="+escape(xmlLoc) );
loader.addEventListener(Event.COMPLETE, onXMLLoaded);
loader.addEventListener(IOErrorEvent.IO_ERROR, onIOErrorHandler);
loader.load(request);
function onIOErrorHandler(e:IOErrorEvent):void {
trace("There was an error with the xml file "+e);
function onXMLLoaded(e:Event):void {
trace("the rss feed has been loaded");
xml = new XML(loader.data);
// set to string, since it is passed back from php as an object
xml = XML(xml.toString());
xml_txt.text = xml;
PHP (loadXML.php in www.domain1.com):
<?php
header("Content-type: text/xml");
$location = "";
if(isset($_GET["location"])) {
$location = $_GET["location"];
$location = urldecode($location);
$xml_string = getData($location);
// pass the url encoded vars back to Flash
echo $xml_string;
//cURLs a URL and returns it
function getData($query) {
// create curl resource
$ch = curl_init();
// cURL url
curl_setopt($ch, CURLOPT_URL, $query);
//Set some necessary params for using CURL
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
//Execute the curl function, and decode the returned JSON data
$result = curl_exec($ch);
return $result;
// close curl resource to free up system resources
curl_close($ch);
?>I think you might be right about permissions/settings on the server for php. Unfortunately I'm not allowed to adjust them.
So I wrote my own script - this time I used file path instead of http address of the XML file. It works fine in my case.
Here it is:
XML file on domain2.com:
<?xml version="1.0" encoding="UTF-8"?>
<gallery>
<image imagePath="galleries/gallery_1/images/1.jpg" thumbPath="galleries/gallery_1/thumbs/1.jpg" file_name= "1"> </image>
<image imagePath="galleries/gallery_1/images/2.jpg" thumbPath="galleries/gallery_1/thumbs/2.jpg" file_name= "2"> </image>
<image imagePath="galleries/gallery_1/images/3.jpg" thumbPath="galleries/gallery_1/thumbs/3.jpg" file_name= "3"> </image>
</gallery>
swf on domain1.com:
var imagesXML:XML;
var variables:URLVariables = new URLVariables();
var varURL:URLRequest = new URLRequest("MyPHPfile.php");
varURL.method = URLRequestMethod.POST;
varURL.data = variables;
var MyLoader:URLLoader = new URLLoader;
MyLoader.dataFormat =URLLoaderDataFormat.VARIABLES;
MyLoader.addEventListener(Event.COMPLETE, XMLDone);
MyLoader.load(varURL);
function XMLDone(event:Event):void {
var imported_XML:Object = event.target.data.imported_XML;
imagesXML = new XML(imported_XML);
MyTextfield_1.text = imagesXML;
MyTextfield_2.text = imagesXML.image[0].attribute("thumbPath"); // sample reference to attribute "thumbPath" of the first element
php file on domain1.com:
<?php
$xml_file = simplexml_load_file('../../domain2.com/galleries/gallery_1/MyXMLfile.xml'); // directory to XML file on the same server
$imported_XML = $xml_file->asXML();
print "imported_XML=" . $imported_XML;
?>
Regards
PS: for those who read the above discussion: the first and the second script work but you must test which one is better in your situation. The first script will also work between two domains on different servers. No cross domain policy file needed. -
File to File multiple scenario without mapping
Hi
I am doing one simple file to file scenario without mapping i.e picking file from sender directory and then placing it in receiver directory via FTP.
Now i have to take two files from different directories and place them in to different directories in the receiver side.
On the sender side i have selected Advanced selection for source file and maintained the sceond directory name and filename.
now i am not aware about the reciver side that how to place the two files in to different directories.
I have to make only one interface for this.
Thanks in advance.u have to follow the code in the link provided above but with some manipulations...
in case u r placing the files in different target dir depending upon the source directory then ur code will be something like this:
Note: i dont have a system as of now..so cant able to check the code for syntax errors..please cross check it
MessagePropertyKey mpk = new MessagePropertyKey("Directory","http://sap.com/xi/XI/System/File");
String SourceDir = msg.getMessageProperty(mpk);
if(SourceDir.equals("/SourceDirectory1"))
String targetDir1 = "/TargetDirectory1"
msg.setMessageProperty("http://sap.com/xi/XI/System/File","Directory",targetDir1);
else if(SourceDir.equals("/SourceDirectory2"))
String targetDir1 = "/TargetDirectory2"
msg.setMessageProperty("http://sap.com/xi/XI/System/File","Directory",targetDir2);
else
http://help.sap.com/javadocs/pi/SP3/xpi/com/sap/engine/interfaces/messaging/api/Message.html#getMessageProperty(com.sap.engine.interfaces.messaging.api.MessagePropertyKey)
lIbraries for adapter module development:
http://wiki.sdn.sap.com/wiki/display/XI/Where%20to%20get%20the%20libraries%20for%20XI%20development
How to develop adapter module:
http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/c0b39e65-981e-2b10-1c9c-fc3f8e6747fa?QuickLink=index&overridelayout=true -
Request Message mapping in SXMB_MONI for File - RFC - File without BPM
Hi ,
In my File-RFC-File scenario, the messages are processed successfully.
but when i look into the SXMB_MONI for File to RFC step, the records are present only till the Message split According to Receiver List and not able to see the records from Request Message mapping step onwards.it contains
<?xml version="1.0" encoding="UTF-8" ?>
<ns1:Z_PI_LOTUSNOTES_UNIFORM xmlns:ns1="urn:sap-com:document:sap:rfc:functions" />
in my mapping for the receiver RFC i have not done the mapping for all the fields. few fields i have disabled. whether this could create a problem in message mapping. pls let me know what needs to be done.Is it only for this scenario that the above display issue is occuring or is it for all scenarios?
If onlt a particular Pipeline steps are displayed then you can check what is the TRACE level set in SXMB_ADM --> Integration Engine Configuration --> and check if the TRACE parameter is set to at least 2 (max is 3 which will ensure that your DB will get full quickly)
For more information refer: /people/michal.krawczyk2/blog/2005/05/10/xi-i-cannot-see-some-of-my-messages-in-the-sxmbmoni
Regards,
Abhishek. -
1:N mapping without using BPM -- IDOC to multiple files
Hi all,
I am facing a problem while sending multiple files,
I need to send files ( File1, File2 or FIle3) ...
I was able to successfully send the first 2 files and along with it the 3rd file is being created without any data... How to stop this file( either file2 or file 3 should be created) in creating..
I have done the sceanrio like this, )ALL the source and target files are XSD's imported)
In the Message Mapping <b>Messages Tab</b>
<b>Source is AFS_DELVRY03 occurence is 1,
Target files
rootI8 occurence is 1,
rootI9 occurence is 0...1,
rootIB occurence is 0...1</b>
I have done all the maping part , problem is all 3 files are being created(eventhough 2nd or 3rd has no data) , I need rootIB, either rootI9 or rootIB based on condition,
So any one has done the similar scenario, If please suggest me how to hadnle so that only 2nd or 3rd file should be created,
In Interface Determination i have selected the extended option also...
Should i do any specific handling in the Configuration part or should i create more than one mapping?..
U r suggestions are welcome and will be rewarded with points,
Regards,
sridharVenu,
Using a BPM, you can do the mapping / Split as needed and then send the files individually, using a Sens Step as needed. There are multiple ways in which this can be done with a BPM.
But, for a solution without a BPM, as the requirement is such that only 2 of the 3 target messages need to be created, multimapping would not work and the need for conditional routing occurs.So, this would require additional mappings.
The solution is either use a BPM or do the logic using Conditional Routing. Ofcourse the second solution requires 3 mapping programs , but you are avoiding a BPM which can cause a perfromance bottle neck.
If perfromance cannot become a bottle neck, then using BPM would make much more sense , but again it all boils down to the exact requirements and the feasibilty of the solutions!
Regards,
Bhavesh -
Mapping flat xml file to xml Structure
Hi all,
i have to map an xml file, wich is incoming via a RFC call in a flat import field, to a xml-Structure. The xml Structure has the same Structure except that it is not flat but even as a xml-Structure in the Repository. Ist ther a way to make a 1:1 - Mapping?
Regards MathiasHi,
This can be done very easily using Java Mapping.
Parse the flat xml String using Dom4j and directly set this as the target structure.
eg code:
public void execute(InputStream in, OutputStream out) throws StreamTransformationException{
String flatXml = "the flat xml string";
Document doc = DocumentHelper.parseText(flatXml) ;
out.write(doc.asXML().getBytes());
Regards,
P.Venkat -
Help! Urgent !- Mapping error - XML file format ?
Hello,
I can't load this xml file (by http adapter):
<?xml version="1.0" encoding="UTF-8"?>
<ZVG_GetOrderList_requ>
<Orders>
<Order MessageType="GETORDERLIST" DecimalSeparator="POINT" Currency="EUR">
<CustomerCode type="AG">0330029839</CustomerCode>
<Plant>1141</Plant>
<SalesOrganisation>1141</SalesOrganisation>
<DocType>1</DocType>
<DistributionChannel>01</DistributionChannel>
<Division>99</Division>
<BeginDate>20040926</BeginDate>
<EndDate>20041026</EndDate>
<TransactionGroup>0</TransactionGroup>
<CustomerOrderNumber />
<ERPOrderNumber />
</Order>
</Orders>
</ZVG_GetOrderList_requ>
is there any problem in this file ?
The message mapping seem to be correct
do we have to add some tags in the file ?
Thanks for your help
Message was edited by: Fabrice Petetin
Message was edited by: Fabrice PetetinI obtain the following error message :
<?xml version="1.0" encoding="iso-8859-1" ?>
- <Top>
<First>BeginTrace</First>
<Trace level="1" type="B">CL_MAPPING_XMS_PLSRV3-ENTER_PLSRV</Trace>
<Trace level="2" type="T">......attachment XI_Context not found</Trace>
<Trace level="1" type="T">Interface Mapping http://ZVGEPOWER_TRANSACTIONS ZVG_GetOrderList</Trace>
<Trace level="3" type="T">Object ID of Interface Mapping A6AE36BEA38F36198AF80ECE75E2F905</Trace>
<Trace level="3" type="T">Version ID of Interface Mapping 1AADFDF03E2611D9CF65DA19C0A82AA1</Trace>
<Trace level="3" type="T">Mapping Steps 1 JAVA com/sap/xi/tf/_ZVG_GetOrderList_request_</Trace>
<Trace level="2" type="T">Mode 3</Trace>
<Trace level="3" type="T">Creating Java mapping com/sap/xi/tf/_ZVG_GetOrderList_request_.</Trace>
<Trace level="2" type="T">Call method execute of the application Java mapping com.sap.xi.tf._ZVG_GetOrderList_request_</Trace>
<Trace level="1" type="T">*** START APPLICATION TRACE ***</Trace>
<Trace level="3" type="T">Document start</Trace>
<Trace level="3" type="T">Start tag [ns0:BAPI_SALESORDER_GETLIST]</Trace>
<Trace level="3" type="T">Add raw attribute [ xmlns:ns0="urn:sap-com:document:sap:rfc:functions"]</Trace>
<Trace level="1" type="T">*** END APPLICATION TRACE ***</Trace>
<Trace level="1" type="T">RuntimeException during appliction Java mapping com/sap/xi/tf/_ZVG_GetOrderList_request_</Trace>
<Trace level="1" type="T">com.sap.aii.utilxi.misc.api.BaseRuntimeException: RuntimeException in Message-Mapping transformation: Cannot produce target element /ns0:BAPI_SALESORDER_GETLIST/CUSTOMER_NUMBER. Check xml instance is valid for source xsd and target-field mapping fulfills requirements of target xsd at com.sap.aii.mappingtool.tf3.AMappingProgram.start(AMappingProgram.java:296) at com.sap.aii.mappingtool.tf3.Transformer.start(Transformer.java:68) at com.sap.aii.mappingtool.tf3.AMappingProgram.execute(AMappingProgram.java:236) at com.sap.aii.ibrun.server.mapping.JavaMapping.executeStep(JavaMapping.java:63) at com.sap.aii.ibrun.server.mapping.Mapping.execute(Mapping.java:91) at com.sap.aii.ibrun.server.mapping.MappingHandler.run(MappingHandler.java:77) at com.sap.aii.ibrun.sbeans.mapping.MappingRequestHandler.handleMappingRequest(MappingRequestHandler.java:88) at com.sap.aii.ibrun.sbeans.mapping.MappingRequestHandler.handleRequest(MappingRequestHandler.java:63) at com.sap.aii.ibrun.sbeans.mapping.MappingServiceImpl.processFunction(MappingServiceImpl.java:80) at com.sap.aii.ibrun.sbeans.mapping.MappingServiceObjectImpl0.processFunction(MappingServiceObjectImpl0.java:131) at sun.reflect.GeneratedMethodAccessor468.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:324) at com.sap.engine.services.ejb.session.stateless_sp5.ObjectStubProxyImpl.invoke(ObjectStubProxyImpl.java:187) at $Proxy22.processFunction(Unknown Source) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:324) at com.sap.engine.services.rfcengine.RFCDefaultRequestHandler.handleRequest(RFCDefaultRequestHandler.java:95) at com.sap.engine.services.rfcengine.RFCJCOServer.handleRequestInternal(RFCJCOServer.java:113) at com.sap.engine.services.rfcengine.RFCJCOServer$ApplicationRunnable.run(RFCJCOServer.java:171) at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37) at java.security.AccessController.doPrivileged(Native Method) at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:94) at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:162)</Trace>
<Trace level="1" type="T">Runtime exception occurred during execution of application mapping program com/sap/xi/tf/_ZVG_GetOrderList_request_: com.sap.aii.utilxi.misc.api.BaseRuntimeException; RuntimeException in Message-Mapping transformation: Cannot produce target element /ns0:BAPI_SALESORDER_GETLIST/CUSTOMER_NUMBER. Check xml instance is valid for source xsd and target-field mapping fulfills requirements of target xsd</Trace>
<Trace level="1" type="T">com.sap.aii.ibrun.server.mapping.MappingRuntimeException: Runtime exception occurred during execution of application mapping program com/sap/xi/tf/_ZVG_GetOrderList_request_: com.sap.aii.utilxi.misc.api.BaseRuntimeException; RuntimeException in Message-Mapping transformation: Cannot produce target element /ns0:BAPI_SALESORDER_GETLIST/CUSTOMER_NUMBER. Check xml instance is valid for source xsd and target-field mapping fulfills requirements of target xsd at com.sap.aii.ibrun.server.mapping.JavaMapping.executeStep(JavaMapping.java:72) at com.sap.aii.ibrun.server.mapping.Mapping.execute(Mapping.java:91) at com.sap.aii.ibrun.server.mapping.MappingHandler.run(MappingHandler.java:77) at com.sap.aii.ibrun.sbeans.mapping.MappingRequestHandler.handleMappingRequest(MappingRequestHandler.java:88) at com.sap.aii.ibrun.sbeans.mapping.MappingRequestHandler.handleRequest(MappingRequestHandler.java:63) at com.sap.aii.ibrun.sbeans.mapping.MappingServiceImpl.processFunction(MappingServiceImpl.java:80) at com.sap.aii.ibrun.sbeans.mapping.MappingServiceObjectImpl0.processFunction(MappingServiceObjectImpl0.java:131) at sun.reflect.GeneratedMethodAccessor468.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:324) at com.sap.engine.services.ejb.session.stateless_sp5.ObjectStubProxyImpl.invoke(ObjectStubProxyImpl.java:187) at $Proxy22.processFunction(Unknown Source) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:324) at com.sap.engine.services.rfcengine.RFCDefaultRequestHandler.handleRequest(RFCDefaultRequestHandler.java:95) at com.sap.engine.services.rfcengine.RFCJCOServer.handleRequestInternal(RFCJCOServer.java:113) at com.sap.engine.services.rfcengine.RFCJCOServer$ApplicationRunnable.run(RFCJCOServer.java:171) at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37) at java.security.AccessController.doPrivileged(Native Method) at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:94) at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:162) Root Cause: com.sap.aii.utilxi.misc.api.BaseRuntimeException: RuntimeException in Message-Mapping transformation: Cannot produce target element /ns0:BAPI_SALESORDER_GETLIST/CUSTOMER_NUMBER. Check xml instance is valid for source xsd and target-field mapping fulfills requirements of target xsd at com.sap.aii.mappingtool.tf3.AMappingProgram.start(AMappingProgram.java:296) at com.sap.aii.mappingtool.tf3.Transformer.start(Transformer.java:68) at com.sap.aii.mappingtool.tf3.AMappingProgram.execute(AMappingProgram.java:236) at com.sap.aii.ibrun.server.mapping.JavaMapping.executeStep(JavaMapping.java:63) at com.sap.aii.ibrun.server.mapping.Mapping.execute(Mapping.java:91) at com.sap.aii.ibrun.server.mapping.MappingHandler.run(MappingHandler.java:77) at com.sap.aii.ibrun.sbeans.mapping.MappingRequestHandler.handleMappingRequest(MappingRequestHandler.java:88) at com.sap.aii.ibrun.sbeans.mapping.MappingRequestHandler.handleRequest(MappingRequestHandler.java:63) at com.sap.aii.ibrun.sbeans.mapping.MappingServiceImpl.processFunction(MappingServiceImpl.java:80) at com.sap.aii.ibrun.sbeans.mapping.MappingServiceObjectImpl0.processFunction(MappingServiceObjectImpl0.java:131) at sun.reflect.GeneratedMethodAccessor468.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:324) at com.sap.engine.services.ejb.session.stateless_sp5.ObjectStubProxyImpl.invoke(ObjectStubProxyImpl.java:187) at $Proxy22.processFunction(Unknown Source) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:324) at com.sap.engine.services.rfcengine.RFCDefaultRequestHandler.handleRequest(RFCDefaultRequestHandler.java:95) at com.sap.engine.services.rfcengine.RFCJCOServer.handleRequestInternal(RFCJCOServer.java:113) at com.sap.engine.services.rfcengine.RFCJCOServer$ApplicationRunnable.run(RFCJCOServer.java:171) at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37) at java.security.AccessController.doPrivileged(Native Method) at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:94) at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:162)</Trace>
<Trace level="1" type="E">CL_XMS_PLSRV_MAPPING~ENTER_PLSRV</Trace>
</Top> -
Parse file without xml specification or document element
I have a large (600mb) log file that is in xml format but it does not have an xml specification and has no document element.
file looks like this:
<message>...</message>
<message>...</message>
<!-- ... many many many more <message> elements -->
<message>...</message>
<message>...</message>
I have written a class that overrides the SAX DefaultHandler but now want to be able to parse the document without having to add the xml spec and document element manually.
I've thought about writing a subclass of FileReader that adds the xml specification and document element before reading physical file but would also need to add closing document element at end of file.
Is there a simpler way?Hi,
There is another way around the problem of adding a missing root node. This involves adding an extra DTD file and a xml file, like this one:
<?xml version='1.0' encoding='UTF-8' standalone="no"?>
<!DOCTYPE messageSet SYSTEM "logfile.dtd"
[<!ENTITY data SYSTEM "logfile.xml">]
>
<messageSet>
&data;
</messageSet>
This file "includes" the logfie.xml, as an external entity, with your messages as child nodes of element messageSet.
In your program you refer to this xml file when parsing the messages. -
Rename a file at the reciver without mapping with date/timestamp_filename
Hi Friends,
I have a scenario in which I have to rename the file if its exisiting at the reciever end with date/timestamp_filename in a file to file scenario without mapping.
Thanks,
--Sonalchk this (using adapter modules)
http://wiki.sdn.sap.com/wiki/display/Snippets/DynamicfilenameinaFiletoFilepassthroughscenario -
Idoc File to File scenario mapping problem
Dear All,
I am working on File to File scenario in which my source xml file is having multiple deliveries Idoc structure to which I want to convert into output structure as required.
In my source file there is possibility that there can be multiple delivery idocs for the same delivery number so i want to pick all the data for the unique deliveries and if same delivery number repeats then the delivery created last should only be picked without considering others.
Please guide me in mapping this scenario.
Regards,
NJHi,
Use the below UDF.
Set set = new HashSet(Arrays.asList(var1));
String[] array2 = (String[])(set.toArray(new String[set.size()]));
Arrays.sort(array2);
for (int i = 0; i < array2.length; i++) {
result.addValue(array2<i>);
Map like below:
source fieldremove contextUDF--Target(delivery number )
Regards,
Prakasu.M
Edited by: prakasu on Jun 2, 2009 6:43 PM -
Flat File to IDOC Mapping requirement to generate Multiple Segments
Hi Experts,
I got a requirement were i have 2 records in a file and i need to generate 2 IDOCs with multiple segments in it.
FILE :
10/01/2010 101 KRNA ic_quantity 30-0257 3526 1 1 ea 110000 10
10/01/2010 101 KRNA ic_quantity 90-0005 3526 1 2 ea 110000 10
Idoc should generate 2 IDOCs with multiple segments as shown below
I have imported the IDOC and changed the occurrence to " unbounded "
The Basic IDOC Type : WMMBID02
I need to generate Multiple segments of E1MBXY1
i.e.., First IDOC should contain two E1MBXY1 segments
Second IDOC should contain Four E1MBXY1 segments
IDOC1 : WMMBID02
Segment : E1MBXY1( 2 segments)
10/01/2010 101 KRNA ic_quantity 30-0257 3526 1 1 ea 110000 10
10/01/2010 101 KRNA ic_quantity 90-0005 3526 1 2 ea 110000 10
IDOC2 : WMMBID02
Segment : E1MBXY1 ( 4 segments)
10/01/2010 101 KRNA ic_quantity 30-0257 3526 1 1 ea 110000 10
10/01/2010 101 KRNA ic_quantity 30-0257 3521 1 1 ea 110000 10
10/01/2010 101 KRNA ic_quantity 90-0005 3526 1 2 ea 110000 10
10/01/2010 101 KRNA ic_quantity 90-0005 3521 1 2 ea 110000 10
Can anyone suggest me how to generate IDOCs with multiple segments
what are multiple ways of generating it
Whether it can be achieved using Multi-mapping or I need go for UDF
If any one has done has done this type of requirement ,please share the points.
Thanks
SaiBasically you need to generate idoc per record in the flat file. During fcc conversion you convert flat file to xml structure at the sender side. In the mapping use xml file structure source and idoc as receiver structure. You just export idoc and update the idoc segment 1 to unbounded. Please follow the michael blog for file to idoc multimapping without bpm. Yes without bpm it is possible.
see this link... This will answer your requirement.
https://wiki.sdn.sap.com/wiki/display/XI/File%20to%20Multiple%20IDOC%20Splitting%20without%20BPM
>Whether it can be achieved using Multi-mapping or I need go for UDF
you dont need udf for this.
Maybe you are looking for
-
9.3.0.2 Shredded XML Doc not retrieveable
Hey guys, been making progress, been able to create a schema, get it registered, and upload XML documents can see the documents are being shredded as they show up in an SQL query's, and you can browse to them through HTTP or FTP. Wonderful, but touch
-
Check printing using smartform
Hi All , I have urgent requirement that to convert standard check printing program to our custmized check printing program using smartform . Please suggest the way , how we can do that? Regards Mohit Bansal
-
I just bought a MacBook Pro and plugged it into the wall for the first time to charge the battery. Upon plugging it in, the adapter squeals in different frequencies. I've had other MacBooks before, and this is the first time I've ever heard this. The
-
Hi guys, I think this is a silly question, but for me it's a challenge. I'm a HFM implementation resource, so I usually follow the project plan and build the application according to the client's needs. However, this time my boss has asked me to do a
-
How to recognize a telnet session (RF) from a SAPGUI?
hi guys, i must check and block a transaction, developed for a RF terminal, if it is executed by SAPgui... how to, in abap, recognize a telnet session (RF) from a SAPGUI ? I have tried FM "SAPGUI_OBJECT_ID" hoping in a sy-subrc ne 0 with telnet but i