Help needed in splitting files using BPM

Hello experts,
I am working on an interface where i need to split files within BPM.
I know,i can achieve it in Message Mapping by mapping Recordset to Target structure and then using Interface Mapping within Transformation step.But i dont want to follow this.Is there an alternative way to achieve this within BPM.
I have an input file with multiple headers and i need to split for each header.My input file looks like this:
HXXXXXABCDVN01
MXXXXXXXXXXXXXX
MXXXXXXXXXXXXXX
SXXXXXXXXXXXXXX
HXXXXXABCDVN02
MXXXXXXXXXXXXXX
MXXXXXXXXXXXXXX
SXXXXXXXXXXXXXX
HXXXXXABCDVN03
MXXXXXXXXXXXXXX
SXXXXXXXXXXXXXX
Is there a way, where i can specify this condition within BPM , that split files for every H.
Thanks in advance.
Regards,
Swathi

Hi,
have your target structure with occurence as 0...unbounded in the mapping and map the header filed to the root node (repeating parent node) of the target structure....this will create as many target messages as the header fileds....if you want to send these messages separately then use a block in BPM with ForEach option....
Splitting and Dynamic configuration can be applied in the same mapping.
Regards,
Abhishek.
Edited by: abhishek salvi on Dec 18, 2008 12:59 PM

Similar Messages

  • Help needed:Printing HTML file using javax.print

    Hi
    I am using the following code which i got form the forum for rpinting an HTML file.
    The folllowing code is working fine, but the problem is the content of HTML file is not getting printed. I am geeting a blank page with no content. What is the change that is required in the code? ALso is there any simpler way to implement this. Help needed ASAP.
    public boolean printHTMLFile(String filename) {
              try {
                   JEditorPane editorPane = new JEditorPane();
                   editorPane.setEditorKit(new HTMLEditorKit());
                   //editorPane.setContentType("text/html");
                   editorPane.setSize(500,500);
                   String text = getFileContents(filename);
                   if (text != null) {
                        editorPane.setText(text);                    
                   } else {
                        return false;
                   printEditorPane(editorPane);
                   return true;
              } catch (Exception tce) {
                   tce.printStackTrace();
              return false;
         public String getFileContents(String filename) {
              try {
                   File file = new File(filename);
                   BufferedReader br = new BufferedReader(new FileReader(file));
                   String line;
                   StringBuffer sb = new StringBuffer();
                   while ((line = br.readLine()) != null) {
                        sb.append(line);
                   br.close();
                   return sb.toString();
              } catch (Exception tce) {
                   tce.printStackTrace();
              return null;
         public void printEditorPane(JEditorPane editorPane) {
                   try {
                        HTMLPrinter htmlPrinter = new HTMLPrinter();
                        htmlPrinter.printJEditorPane(editorPane, htmlPrinter.showPrintDialog());
                   } catch (Exception tce) {
                        tce.printStackTrace();
         * Sets up to easily print HTML documents. It is not necessary to call any of the setter
         * methods as they all have default values, they are provided should you wish to change
         * any of the default values.
         public class HTMLPrinter {
         public int DEFAULT_DPI = 72;
         public float DEFAULT_PAGE_WIDTH_INCH = 8.5f;
         public float DEFAULT_PAGE_HEIGHT_INCH = 11f;
         int x = 100;
         int y = 80;
         GraphicsConfiguration gc;
         PrintService[] services;
         PrintService defaultService;
         DocFlavor flavor;
         PrintRequestAttributeSet attributes;
         Vector pjlListeners = new Vector();
         Vector pjalListeners = new Vector();
         Vector psalListeners = new Vector();
         public HTMLPrinter() {
              gc = null;
              attributes = new HashPrintRequestAttributeSet();
              flavor = null;
              defaultService = PrintServiceLookup.lookupDefaultPrintService();
              services = PrintServiceLookup.lookupPrintServices(flavor, attributes);
              // do something with the supported docflavors
              DocFlavor[] df = defaultService.getSupportedDocFlavors();
              for (int i = 0; i < df.length; i++)
              System.out.println(df.getMimeType() + " " + df[i].getRepresentationClassName());
              // if there is a default service, but no other services
              if (defaultService != null && (services == null || services.length == 0)) {
              services = new PrintService[1];
              services[0] = defaultService;
         * Set the GraphicsConfiguration to display the print dialog on.
         * @param gc a GraphicsConfiguration object
         public void setGraphicsConfiguration(GraphicsConfiguration gc) {
              this.gc = gc;
         public void setServices(PrintService[] services) {
              this.services = services;
         public void setDefaultService(PrintService service) {
              this.defaultService = service;
         public void setDocFlavor(DocFlavor flavor) {
              this.flavor = flavor;
         public void setPrintRequestAttributes(PrintRequestAttributeSet attributes) {
              this.attributes = attributes;
         public void setPrintDialogLocation(int x, int y) {
              this.x = x;
              this.y = y;
         public void addPrintJobListener(PrintJobListener pjl) {
              pjlListeners.addElement(pjl);
         public void removePrintJobListener(PrintJobListener pjl) {
              pjlListeners.removeElement(pjl);
         public void addPrintServiceAttributeListener(PrintServiceAttributeListener psal) {
              psalListeners.addElement(psal);
         public void removePrintServiceAttributeListener(PrintServiceAttributeListener psal) {
              psalListeners.removeElement(psal);
         public boolean printJEditorPane(JEditorPane jep, PrintService ps) {
                   if (ps == null || jep == null) {
                        System.out.println("printJEditorPane: jep or ps is NULL, aborting...");
                        return false;
                   // get the root view of the preview pane
                   View rv = jep.getUI().getRootView(jep);
                   // get the size of the view (hopefully the total size of the page to be printed
                   int x = (int) rv.getPreferredSpan(View.X_AXIS);
                   int y = (int) rv.getPreferredSpan(View.Y_AXIS);
                   // find out if the print has been set to colour mode
                   DocPrintJob dpj = ps.createPrintJob();
                   PrintJobAttributeSet pjas = dpj.getAttributes();
                   // get the DPI and printable area of the page. use default values if not available
                   // use this to get the maximum number of pixels on the vertical axis
                   PrinterResolution pr = (PrinterResolution) pjas.get(PrinterResolution.class);
                   int dpi;
                   float pageX, pageY;
                   if (pr != null)
                        dpi = pr.getFeedResolution(PrinterResolution.DPI);
                   else
                        dpi = DEFAULT_DPI;
                   MediaPrintableArea mpa = (MediaPrintableArea) pjas.get(MediaPrintableArea.class);
                   if (mpa != null) {
                        pageX = mpa.getX(MediaPrintableArea.INCH);
                        pageY = mpa.getX(MediaPrintableArea.INCH);
                   } else {
                        pageX = DEFAULT_PAGE_WIDTH_INCH;
                        pageY = DEFAULT_PAGE_HEIGHT_INCH;
                   int pixelsPerPageY = (int) (dpi * pageY);
                   int pixelsPerPageX = (int) (dpi * pageX);
                   int minY = Math.max(pixelsPerPageY, y);
                   // make colour true if the user has selected colour, and the PrintService can support colour
                   boolean colour = pjas.containsValue(Chromaticity.COLOR);
                   colour = colour & (ps.getAttribute(ColorSupported.class) == ColorSupported.SUPPORTED);
                   // create a BufferedImage to draw on
                   int imgMode;
                   if (colour)
                        imgMode = BufferedImage.TYPE_3BYTE_BGR;
                   else
                        imgMode = BufferedImage.TYPE_BYTE_GRAY;
                   BufferedImage img = new BufferedImage(pixelsPerPageX, minY, imgMode);
                   Graphics myGraphics = img.getGraphics();
                   myGraphics.setClip(0, 0, pixelsPerPageX, minY);
                   myGraphics.setColor(Color.WHITE);
                   myGraphics.fillRect(0, 0, pixelsPerPageX, minY);
                        java.awt.Rectangle rectangle=new java.awt.Rectangle(0,0,pixelsPerPageX, minY);
                   // call rootView.paint( myGraphics, rect ) to paint the whole image on myGraphics
                   rv.paint(myGraphics, rectangle);
                   try {
                        // write the image as a JPEG to the ByteArray so it can be printed
                        Iterator writers = ImageIO.getImageWritersByFormatName("jpeg");
                        ImageWriter writer = (ImageWriter) writers.next();
                                       // mod: Added the iwparam to create the highest quality image possible
                        ImageWriteParam iwparam = writer.getDefaultWriteParam();
                        iwparam.setCompressionMode(ImageWriteParam.MODE_EXPLICIT) ;
                        iwparam.setCompressionQuality(1.0f); // highest quality
                        ByteArrayOutputStream out = new ByteArrayOutputStream();
                        ImageOutputStream ios = ImageIO.createImageOutputStream(out);
                        writer.setOutput(ios);
                        // get the number of pages we need to print this image
                        int imageHeight = img.getHeight();
                        int numberOfPages = (int) Math.ceil(minY / (double) pixelsPerPageY);
                        // print each page
                        for (int i = 0; i < numberOfPages; i++) {
                             int startY = i * pixelsPerPageY;
                             // get a subimage which is exactly the size of one page
                             BufferedImage subImg = img.getSubimage(0, startY, pixelsPerPageX, Math.min(y - startY, pixelsPerPageY));
                                                 // mod: different .write() method to use the iwparam parameter with highest quality compression
                             writer.write(null, new IIOImage(subImg, null, null), iwparam);
                             SimpleDoc sd = new SimpleDoc(out.toByteArray(), DocFlavor.BYTE_ARRAY.JPEG, null);
                             printDocument(sd, ps);
                             // reset the ByteArray so we can start the next page
                             out.reset();
                   } catch (PrintException e) {
                        System.out.println("Error printing document.");
                        e.printStackTrace();
                        return false;
                   } catch (IOException e) {
                        System.out.println("Error creating ImageOutputStream or writing to it.");
                        e.printStackTrace();
                        return false;
                   // uncomment this code and comment out the 'try-catch' block above
                   // to print to a JFrame instead of to the printer
                   /*          JFrame jf = new JFrame();
                             PaintableJPanel jp = new PaintableJPanel();
                             jp.setImage( img );
                             JScrollPane jsp = new JScrollPane( jp );
                             jf.getContentPane().add( jsp );
                             Insets i = jf.getInsets();
                             jf.setBounds( 0, 0, newX, y );
                             jf.setDefaultCloseOperation( JFrame.DISPOSE_ON_CLOSE );
                             jf.setVisible( true );*/
                   return true;
              * Print the document to the specified PrintService.
              * This method cannot tell if the printing was successful. You must register
              * a PrintJobListener
              * @return false if no PrintService is selected in the dialog, true otherwise
              public boolean printDocument(Doc doc, PrintService ps) throws PrintException {
                   if (ps == null)
                   return false;
                   addAllPrintServiceAttributeListeners(ps);
                   DocPrintJob dpj = ps.createPrintJob();
                   addAllPrintJobListeners(dpj);
                   dpj.print(doc, attributes);
                   return true;
              public PrintService showPrintDialog() {
                   return ServiceUI.printDialog(gc, x, y, services, defaultService, flavor, attributes);
              private void addAllPrintServiceAttributeListeners(PrintService ps) {
                   // add all listeners that are currently added to this object
                   for (int i = 0; i < psalListeners.size(); i++) {
                   PrintServiceAttributeListener p = (PrintServiceAttributeListener) psalListeners.get(i);
                   ps.addPrintServiceAttributeListener(p);
              private void addAllPrintJobListeners(DocPrintJob dpj) {
                   // add all listeners that are currently added to this object
                   for (int i = 0; i < pjlListeners.size(); i++) {
                   PrintJobListener p = (PrintJobListener) pjlListeners.get(i);
                   dpj.addPrintJobListener(p);
              // uncomment this also to print to a JFrame instead of a printer
              /* protected class PaintableJPanel extends JPanel {
                   Image img;
                   protected PaintableJPanel() {
                        super();
                   public void setImage( Image i ) {
                        img = i;
                   public void paint( Graphics g ) {
                        g.drawImage( img, 0, 0, this );
    Thanks
    Ram

    Ram,
    I have had printing problems too a year and a half ago. I used all printing apis of java and I still find that it is something java lacks. Now basically you can try autosense. To check whether your printer is capable of printing the docflavor use this PrintServiceLookup.lookupPrintServices(flavor, aset); . If it lists the printer then he can print the document otherwise he can't. I guess that is why you get the error.
    Regards,
    Kevin

  • Help needed saving excel file using servlet and mailing it as attachment

    Hi,
    I have to enhance an existing application in which (in jsp) using response.setContentType("application/vnd.ms-excel");
    response.setHeader("Content-Disposition", "attachment=inline");
    and stuff ..
    we are asking user to view or save the file. But now i have to write code to save that xls, and send it as an attachment to other users of the application.
    I am new to this plz help me out
    Thanks in advance
    Regards
    Aashi

    Hi Orlando,
    convert content to Hex format then,
    lw_document = cl_document_bcs=>create_document(
               i_type    = 'RAW / HTM'
               i_text    = lw_main_text
               i_subject = lw_subject ).
          w_document->add_attachment(
             i_attachment_type    = 'XLS'
             i_attachment_subject = lw_att_sub
             i_att_content_text   = p_int_soli[]
             i_att_content_hex    = p_int_solix[] ).
    w_int_address = lw_smtp-low.
                 w_camuser = cl_cam_address_bcs=>create_internet_address( w_int_address ).
                 w_recipient = w_camuser.
    thanks,
    Anil

  • Merging two files using BPM

    Hello frens,
    I have to do a scenario which will merge to files into one file using BPM....
    Means for example :
    File 1 contains these fields:
    First Name
    Last Name
    File 2 :
    First Name
    Last Name
    The output File which I required is :
    First Name
    Last Name
    First Name
    Last Name
    Can anyone send me the step by step procedure fr this scenario?
    Thanks in advance

    HI go through these links,
    /people/shabarish.vijayakumar/blog/2005/08/03/xpath-to-show-the-path-multiple-receivers
    http://help.sap.com/saphelp_nw04/helpdata/en/3c/831620a4f1044dba38b370f77835cc/content.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/62/dcef46dae42142911c8f14ca7a7c39/content.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/de/766840bf0cbf49e10000000a1550b0/content.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/cb/15163ff8519a06e10000000a114084/content.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/08/16163ff8519a06e10000000a114084/content.htm
    Many other examples can be found under the following link at help.sap.com
    http://help.sap.com/saphelp_nw04/helpdata/en/14/80243b4a66ae0ce10000000a11402f/frameset.htm
    And some weblogs
    https://weblogs.sdn.sap.com/pub/wlg/1403 [original link is broken] [original link is broken] [original link is broken] [original link is broken] [original link is broken]
    /people/siva.maranani/blog/2005/05/22/schedule-your-bpm *****
    /people/krishna.moorthyp/blog/2005/06/09/walkthrough-with-bpm
    /people/michal.krawczyk2/blog/2005/06/11/xi-how-to-retrieve-messageid-from-a-bpm
    /people/arpit.seth/blog/2005/06/27/rfc-scenario-using-bpm--starter-kit
    /people/sravya.talanki2/blog/2005/08/24/do-you-like-to-understand-147correlation148-in-xi
    /people/michal.krawczyk2/blog/2005/09/04/xi-do-you-realy-enjoy-clicking-and-waiting-while-tracing-bpm-steps *****
    /people/udo.martens/blog/2005/09/30/one-logical-system-name-for-serveral-bpm-acknowledgements *****
    /people/sudharshan.aravamudan/blog/2005/12/01/illustration-of-multi-mapping-and-message-split-using-bpm-in-sap-exchange-infrastructure
    /people/kannan.kailas/blog/2005/12/07/posting-multiple-idocs-with-acknowledgement
    Also have a look at these seminars,
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/media/uuid/daea5871-0701-0010-12aa-c3a0c6d54e02
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/media/uuid/e8515171-0701-0010-be98-e37bec4706cc
    go through these links,
    /people/shabarish.vijayakumar/blog/2005/08/03/xpath-to-show-the-path-multiple-receivers
    http://help.sap.com/saphelp_nw04/helpdata/en/3c/831620a4f1044dba38b370f77835cc/content.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/62/dcef46dae42142911c8f14ca7a7c39/content.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/de/766840bf0cbf49e10000000a1550b0/content.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/cb/15163ff8519a06e10000000a114084/content.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/08/16163ff8519a06e10000000a114084/content.htm
    Many other examples can be found under the following link at help.sap.com
    http://help.sap.com/saphelp_nw04/helpdata/en/14/80243b4a66ae0ce10000000a11402f/frameset.htm
    And some weblogs
    https://weblogs.sdn.sap.com/pub/wlg/1403 [original link is broken] [original link is broken] [original link is broken] [original link is broken] [original link is broken]
    /people/siva.maranani/blog/2005/05/22/schedule-your-bpm *****
    /people/krishna.moorthyp/blog/2005/06/09/walkthrough-with-bpm
    /people/michal.krawczyk2/blog/2005/06/11/xi-how-to-retrieve-messageid-from-a-bpm
    /people/arpit.seth/blog/2005/06/27/rfc-scenario-using-bpm--starter-kit
    /people/sravya.talanki2/blog/2005/08/24/do-you-like-to-understand-147correlation148-in-xi
    /people/michal.krawczyk2/blog/2005/09/04/xi-do-you-realy-enjoy-clicking-and-waiting-while-tracing-bpm-steps *****
    /people/udo.martens/blog/2005/09/30/one-logical-system-name-for-serveral-bpm-acknowledgements *****
    /people/sudharshan.aravamudan/blog/2005/12/01/illustration-of-multi-mapping-and-message-split-using-bpm-in-sap-exchange-infrastructure
    /people/kannan.kailas/blog/2005/12/07/posting-multiple-idocs-with-acknowledgement
    Also have a look at these seminars,
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/media/uuid/daea5871-0701-0010-12aa-c3a0c6d54e02
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/media/uuid/e8515171-0701-0010-be98-e37bec4706cc
    go through these links,
    /people/shabarish.vijayakumar/blog/2005/08/03/xpath-to-show-the-path-multiple-receivers
    http://help.sap.com/saphelp_nw04/helpdata/en/3c/831620a4f1044dba38b370f77835cc/content.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/62/dcef46dae42142911c8f14ca7a7c39/content.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/de/766840bf0cbf49e10000000a1550b0/content.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/cb/15163ff8519a06e10000000a114084/content.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/08/16163ff8519a06e10000000a114084/content.htm
    Many other examples can be found under the following link at help.sap.com
    http://help.sap.com/saphelp_nw04/helpdata/en/14/80243b4a66ae0ce10000000a11402f/frameset.htm
    And some weblogs
    https://weblogs.sdn.sap.com/pub/wlg/1403 [original link is broken] [original link is broken] [original link is broken] [original link is broken] [original link is broken]
    /people/siva.maranani/blog/2005/05/22/schedule-your-bpm *****
    /people/krishna.moorthyp/blog/2005/06/09/walkthrough-with-bpm
    /people/michal.krawczyk2/blog/2005/06/11/xi-how-to-retrieve-messageid-from-a-bpm
    /people/arpit.seth/blog/2005/06/27/rfc-scenario-using-bpm--starter-kit
    /people/sravya.talanki2/blog/2005/08/24/do-you-like-to-understand-147correlation148-in-xi
    /people/michal.krawczyk2/blog/2005/09/04/xi-do-you-realy-enjoy-clicking-and-waiting-while-tracing-bpm-steps *****
    /people/udo.martens/blog/2005/09/30/one-logical-system-name-for-serveral-bpm-acknowledgements *****
    /people/sudharshan.aravamudan/blog/2005/12/01/illustration-of-multi-mapping-and-message-split-using-bpm-in-sap-exchange-infrastructure
    /people/kannan.kailas/blog/2005/12/07/posting-multiple-idocs-with-acknowledgement
    Also have a look at these seminars,
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/media/uuid/daea5871-0701-0010-12aa-c3a0c6d54e02
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/media/uuid/e8515171-0701-0010-be98-e37bec4706cc
    Note: reward points if solution found helpfull
    Regards
    Chandrakanth.k

  • Multiple IDocs to File using BPM

    Hi All,
    I have configured a scenario of multiple IDocs to file using BPM.  In this scenario while I am triggering IDoc from R/3 system it is sent to the external program.    I am getting in the status record of WE05 as IDoc is sent to an external system with status code 03. But I am unable to view the same message in moni of the XI system.
    Also I have checked the ALE settings on both the sender and receiver side and it is fine.
    Also in SM58 nothing is there in queue.
    Can anyone solve this issue of mine?
    Cheers,
    Neethu.

    Hi,
    in many cases it's a problem with the RFC connection. You should try an authorization test in SM59 of the R/3 system.
    This might also be useful:
    http://help.sap.com/saphelp_nw04s/helpdata/en/6a/e6194119d8f323e10000000a155106/frameset.htm
    Regards
    Patrick

  • File to file using bpm

    Kindly help in this regards.. its a file to file Bpm collect message scenario
    1) my ? is i am having two sender data types i combined in message mapping and mapped to target structure but when i want to send file how can i send two diffrent files.
           1) wht i did is when i press test button i gave details of datatype1 and removed the other xml code   and paste it in notepad and anmed as file1 and i repeat the same thing for file 2 aslo.
    2) i did this scenario by seeing saptechnical (file to file using bpm)
    plz help me out how to achieve this probs.
      <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
    - <!--  Call Adapter
      -->
    - <SAP:Error xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="">
      <SAP:Category>XIAdapter</SAP:Category>
      <SAP:Code area="BPE_ADAPTER">MESSAGE_NOT_USED</SAP:Code>
      <SAP:P1 />
      <SAP:P2 />
      <SAP:P3 />
      <SAP:P4 />
      <SAP:AdditionalText />
      <SAP:ApplicationFaultMessage namespace="" />
      <SAP:Stack>Message is not used by any processes</SAP:Stack>
      <SAP:Retry>M</SAP:Retry>
      </SAP:Error>

    Hi Raju,
    As per my understanding you want to merge two files and send it to the target. Then you can do it with and without BPM. But, since you are using BPM then you have to create Integration Process in IR and design it like:
    2 receiver step
    1  sender step and 1 transformation step
    Follow these steps:
    Create 2 Source DT, 1 Target DT
    Create 2 Source MT, 1 Target MT
    Create 2 Outbound MI, 2 Abstract MI for Source MT, create 1 Inbound MI and 1 Abstract MI for Target MT.
    Create Message Mapping. Insert 2 Outbound Source and One Inbound Target and MAp it whatever you want.
    Create Interface mapping in same way as Message mapping only difference will be use Abstract interface in both sides.
    Now go to BPM.
    Create BPM with steps like this
    Start -> Fork -> Two receive (define co relation)-> after fork Transformation step (Give IM) -> Receiver Dtrm -> Send -> end.
    Configure ID -
    Create 2 sender Agreement (2 communication channel (Bus Sys to IP )), 1 receiver agreement (1 CC, IP to Business System)
    I hope it will be helpful for you.
    Thanks
    Nutan

  • About File To File using BPM

    Hi,
    Can any body send the file to file scenario using BPM and also  some other typical scenario's on BPM with screenshots.
    Thanks in advance .
    Regards,
    Prem.S

    hi
    these r some useful blogs for bpm scenarios.
    /people/krishna.moorthyp/blog/2005/06/09/walkthrough-with-bpm
    FILE TO FILE SCENARIO USING BPM
    Interface mappin in File to File using BPM
    /people/udo.martens/blog/2005/09/30/one-logical-system-name-for-serveral-bpm-acknowledgements
    /people/siva.maranani/blog/2005/05/22/schedule-your-bpm
    /people/arpit.seth/blog/2005/06/27/rfc-scenario-using-bpm--starter-kit
    /people/sravya.talanki2/blog/2005/08/24/do-you-like-to-understand-147correlation148-in-xi
    /people/michal.krawczyk2/blog/2005/09/04/xi-do-you-realy-enjoy-clicking-and-waiting-while-tracing-bpm-steps
    /people/sudharshan.aravamudan/blog/2005/12/01/illustration-of-multi-mapping-and-message-split-using-bpm-in-sap-exchange-infrastructure
    Regards
    rajesh

  • Regarding file 2 file using BPM

    Hi Experts,
                     In file to file using BPM scenario my file is being picked in the server but it is not displaying again after polling interval. please help me one this issue as early as possible.

    Hi,
    File is picked up from the server is ok, but it does not mean that it reached to IE.
    Just go to RWB-Component MonitoringAdapter EngineCommunication Channel MOnitoring. and check the Sender File adapter from there and let us know the status??
    If it is in Error it cannot be delievered to IS and BPE, so first check it
    Thanks
    Farooq.

  • Joining data in multiple files into a single file using BPM

    Hello All,
             Can someone kindly give me any documentation or step by step procedure to join data in multiple file and display it all in one single file, using BPM.
    Thanks in advance,
    XI_Novice

    hi,
    Check this blog also...
    /people/pooja.pandey/blog/2005/07/27/idocs-multiple-types-collection-in-bpm
    /people/narendra.jain/blog/2005/12/30/various-multi-mappings-and-optimizing-their-implementation-in-integration-processes-bpm-in-xi
    regards

  • Collect Multiple IDOC(Single IDOC type) to single file using BPM

    Hi All,
    When i am generating multiple IDOC for the same message type, i am getting multiple payload for the same as a result i used to get multiple files generated in application server.
    Now if i use BPM only to collect multiple IDOC to a file then what all the steps that i need to follow for the same.
    Ex: I want to post 10 IDOC for a single IDOC type,, Now using BPM in XI i want to collect all the 10 IDOCs with multiple payload into one single message and then want to process this in XI to generate the file.
    It would be glad if anyone refer me a good step by step blog for the same.
    Thanks in advance,
    Jay

    Thanks a lot Abhisek.
      I have also got a blog explaining the exact thing. But in the blog the ID part was missing which is present in the link you have provided.
    I will be glad if you can through some light on the ID part,, however the IR part and the BPM part is now mostly okay to me.
    I will configure this today only,, and may seek your help for any huddle.
    Thanks a lot once again.
    Regards,
    Jay.

  • ** How to deliver multiple files using BPM (From RFC output)

    Hi Friends,
    I am doing File-RFC-File scenario using BPM. I am using BAPI_SFLIGHT_GETLIST as my RFC (Standard RFC). If we execute this RFC, it will return the results in tables form. Assume that, the inputs to RFC is like below.
    FromCountryKey : US
    FromCity: NEW YORK
    ToCountryKey: DE
    ToCity: FRANKFURT.
    The outputs from the RFC is like below.
    26 Entries
    CAR
    CONN
    FLDATE
    AIR
    AIR
    DEPTIME
    SEATSMAX
    SEATSOCC
    |
    DL
    0106
    19.05.2008
    JFK
    FRA
    19:35:00
    280
    266
    UA
    3516
    20.05.2008
    JFK
    FRA
    16:20:00
    380
    364
    LH
    0401
    23.05.2008
    JFK
    FRA
    18:30:00
    220
    209
    LH
    0401
    28.05.2008
    JFK
    FRA
    18:30:00
    220
    208
    UA
    3516
    28.05.2008
    JFK
    FRA
    16:20:00
    380
    367
    DL
    0106
    16.06.2008
    JFK
    FRA
    19:35:00
    280
    261
    UA
    3516
    17.06.2008
    JFK
    FRA
    16:20:00
    380
    357
    LH
    0401
    20.06.2008
    JFK
    FRA
    18:30:00
    220
    213
    DL
    0106
    14.07.2008
    JFK
    FRA
    19:35:00
    280
    1
    UA
    3516
    15.07.2008
    JFK
    FRA
    16:20:00
    380
    86
    LH
    0401
    18.07.2008
    JFK
    FRA
    18:30:00
    220
    123
    DL
    0106
    11.08.2008
    JFK
    FRA
    19:35:00
    280
    56
    UA
    3516
    12.08.2008
    JFK
    FRA
    16:20:00
    380
    67
    LH
    0401
    15.08.2008
    JFK
    FRA
    18:30:00
    220
    114
    DL
    0106
    08.09.2008
    JFK
    FRA
    19:35:00
    280
    0
    UA
    3516
    09.09.2008
    JFK
    FRA
    16:20:00
    380
    164
    LH
    0401
    12.09.2008
    JFK
    FRA
    18:30:00
    220
    64
    DL
    0106
    06.10.2008
    JFK
    FRA
    19:35:00
    280
    80
    UA
    3516
    07.10.2008
    JFK
    FRA
    16:20:00
    380
    8
    LH
    0401
    10.10.2008
    JFK
    FRA
    18:30:00
    220
    16
    DL
    0106
    03.11.2008
    JFK
    FRA
    19:35:00
    280
    11
    UA
    3516
    04.11.2008
    JFK
    FRA
    16:20:00
    380
    33
    LH
    0401
    07.11.2008
    JFK
    FRA
    18:30:00
    220
    53
    DL
    0106
    01.12.2008
    JFK
    FRA
    19:35:00
    280
    0
    UA
    3516
    02.12.2008
    JFK
    FRA
    16:20:00
    380
    45
    LH
    0401
    05.12.2008
    JFK
    FRA
    18:30:00
    220
    25
    |
    We need to create output file for each record. In this case, the system should generate 26 output files.
    I imported the RFC and created the required interfaces and designed BPM also.
    Start --> Receive step --> Synchronous Send --> Asynchronous Send
    But, I stuck in how to deliver each record to the output file from BPM.
    Any idea, friends. (like using BPM Multi-line option. or 'Receiver From' property in the Send Step)
    Kindly help me friends to solve this issue.
    Thanking you.
    Kind Regards,
    Jeg P.

    Hi
    You can do it by creating one another message interface having structure same as your table.
    What you have to do is create a mapping in such a way that for each record in table one message(newly created) must be created.
    Use that mapping in an interface mapping, remember occurence of target message should be 0..Unbounded both in message mapping and interface mapping.
    Now create one single line message and one multiline message in BPM for newly created message.Use transformation step with new interface mapping, mention source(RFC response) and target message(use multiline element of new message) for the transformation step.
    Use send step inside a block,set block mode to "forEach", and attach new message to that send step.
    Use multiline and single element of new message in the property window of block.
    Now your BPM will look like
    Start ---> Receiver ---> Synchronous send ---> Transformation ---> Block ---> Async Send(within block)
    I think in this way you can implement what you want.
    Regards
    Sami
    Reward points if helpful.

  • File to File using BPM & value mapping

    Hi,
       I have the following scenario to do. sample file structure is given below.
    source:
    HDR   13052008INDIA
    BDY   123456
    BDY   1234567
    EOF 
    Target:
    HDR 2IN  BDY 123456 EOF
    HDR 2IN  BDY 1234567 EOF
    for the above mentioned source and target mapping. we have to use BPM and value mapping.
    In the HDR row 13052008 is the date value this has to be passed to RFC function module and it will return 2, this value has to be mapped to target
    And INDIA has to be mapped to IN using the value mapping option. similarly we have many coutry code.
    could anyone let me know the step by step procedure to achieve this, I followed the blog https://weblogs.sdn.sap.com/pub/wlg/1926. [original link is broken] [original link is broken] [original link is broken] but it does not fit to my scenario.
    help is appreciated.
    Regards
    RDS

    Hey,
         This is a normal file to file scenario.
         You need to use RFC look up instead of value mapping.(as you need to extract 2 and IN from an RFC)
    There is no need for a BPM.
    refer to this blog(for RFC look up)
    /people/sravya.talanki2/blog/2005/12/21/use-this-crazy-piece-for-any-rfc-mapping-lookups
    this will solve your problem.
    Output of RFC look up will be 2 and IN . So use the concat function.
    Other values map them directly from source to target.
    Also, set the occurence for the target structure as 0 to unbounded in the mapping.(this is to be done in order to have one file for each record of the source)
    You also need to configure file content conversion.(both at sender and reciever side) to convert the text file to XML on the sender side and then XML to text at the reciever side.
    refer to this link for FCC.
    /people/michal.krawczyk2/blog/2004/12/15/how-to-send-a-flat-file-with-fixed-lengths-to-xi-30-using-a-central-file-adapter
    This is for sender file content conversion.
    http://help.sap.com/saphelp_nw04/helpdata/en/44/79973cc73af456e10000000a114084/frameset.htm
    This is for reciever FCC.
    http://help.sap.com/saphelp_nw04/helpdata/en/44/79973cc73af456e10000000a114084/frameset.htm
    reward points if useful.
    regards,
           Milan

  • Problem in merging two files using BPM

    Hello Frens,
    I am doing a scenario for merging of two files N:1 using BPMu2026
    I have to merge two files into one file. The two input files are as below :
    File1 : Id, Name, Age, Place
    File2 : ID, Street, Adrress
    And output File is : ID, Name, Age,place, street, Address
    For this scenario I have defined three datatypes , message types and  the message interfaces as below :
    For File1:  Mi_file1_ob, Mi_file1_abs
    For File2: Mi_file2_ob, Mi_file2_abs
    For output : mi_output_ib, mi_ouput_abs
    In interface mapping I have selected two source interface and one targetu2026
    For Integration process I have selected two receives as two branches of fork and transformation to collect them and a send..
    In IR part I have defined three communication channels sender1, sender2 and a receiver . I have imported the integration from IP and rest is sameu2026
    I am facing a problem for getting the outputu2026
    When I checked in sxmb_moni  everything is fine  and sxi_cache and the return code is also 0 but I am not getting the outputu2026
    Can anyone help me in finding out the problem..
    Thanks in advance...

    Hi,
    Have a look into these blogs and links
    /people/sudharshan.aravamudan/blog/2005/12/01/illustration-of-multi-mapping-and-message-split-using-bpm-in-sap-exchange-infrastructure
    http://help.sap.com/saphelp_nw04/helpdata/en/de/766840bf0cbf49e10000000a1550b0/content.htm
    you can design the ccBPM. To know more about Correlation -with e.g
    http://help.sap.com/saphelp_nw2004s/helpdata/en/0e/56373f7853494fe10000000a114084/content.htm
    /people/sravya.talanki2/blog/2005/08/24/do-you-like-to-understand-147correlation148-in-xi
    /people/pooja.pandey/blog/2005/07/27/idocs-multiple-types-collection-in-bpm
    /people/sriram.vasudevan3/blog/2005/01/11/demonstrating-use-of-synchronous-asynchronous-bridge-to-integrate-synchronous-and-asynchronous-systems-using-ccbpm-in-sap-xi
    Re: Correlation
    http://help.sap.com/saphelp_nw04/helpdata/en/a5/64373f7853494fe10000000a114084/content.htm
    i hope this will help you.
    Regards
    Aashish Sinha
    PS : reward points if helpful

  • Configuring a multiple IDOC-File using BPM

    HI,
    My scenario involves 2different idocs which are to be mapped to a file structure,the steps that i have followed in IR is ,
    1.Create target MesageType
    message Interfaces.
    2.Create 2 Abs interfaces based on IDOC
    3.Create 1 Abs for o/p of BPM.
    4.Create 1 Inb for target.
    Message mapping.
    5.Two dummy mappings for outbound idocs to abstract idocs.
    6.One multimapping(two idocs-->File)
    7.One Dummy mapping for Abstract Intf(output of BPM) to target Filestructure(inbound).
    Interface Mapping.
    8.Two Mesage intf for changing Outbound idocs to Abstract using the dummy mapping programs)
    9.One Message Intf using 2 abs Idocs to One Abs File(using the multimapping pgm)
    10.one msg Intf for BPM Out --> Inb File (using the dummy mapping pgm)
    Integration Process.
    I have used a fork step under which there are 2 recieve steps to recieve the IDOCS and then a Transformation step that would multi-map the idocs to the file,then a send step.
    Please let me know if the approach is right.
    Also Could anybody please let me know what steps do i need to take in the Configuration part and should i use the wizard or should i do it manually.
    the problem using the wizard is it doesnt let me choose 2 Message interfaces for the sender ie; IDOCS,
    Please help me on this.Thank you waiting for a reply....)

    John,
    <i>5.Two dummy mappings for outbound idocs to abstract idocs.
    7.One Dummy mapping for Abstract Intf(output of BPM) to target Filestructure(inbound).</i>
    These dummy mappings are needed. As both the Abstract Message Interfaces and the Idoc / Inbound interface will use the same message type, no dummy mapping needed. In the interface determination for these, no interface mapping needs to be mnetioned.
    ID.
    Receiver Determaintions
    1. Sender Service -- IDOC1  and Reciver Service is -- BPM. Sender Interface will be IDOC1 and Receiver Interafce will be The IDOC abs interface . No Interface mapping.
    2. Sender Service --- IDOC2 and Receiver Service is -- BPM. Sender Interface will be IDOC2 and Receiver Interafce will be The IDOC abs interface . No Interface mapping.
    3. Sender Service is BPM , and receiver servcice is File. Sender Interface is File Abs interface and reciver interface is the Inbound File interface.
    1 Reciver Agreement for the File adapter.
    Regards,
    Bhavesh

  • Problem: Merging same Files into 1 File using BPM, Receiver File empty.

    Hi All,
    I am trying a scenario where I need to merge two similar files into one single file (Append) using BPM
    I am following the same structure as defined in the predifined BASIS Namespace i.e.  http://sap.com/xi/XI/System/Patterns for Integration Process BpmPatternCollectPayloads. The only thing I changed is that inside my loop I am having a container dat counts till 2.
    Now when m testing d interface, the file @ reciver directory is generating, but without any data i.e an empty xml is generating. PI is also not showing any error anywhere.
    My Message mapping structure is as follows:
    Sender Side:
    <Message>    (1..1)
       <Message1>  (1..1)
           <MT_myMessageType>  (0..unbounded)
                    <Records>  (1..1)
                            <Id(Used for correlation)> (1..1)
                            <Name>   (1..1)
                            <Address>  (1..1)
    Receiver Side:
    <Message>    (1..1)
       <Message1>  (1..1)
           <MT_myMessageType>  (1..1)
                    <Records>  (0..Unsbounded)
                            <Id(Used for correlation)> (1..1)
                            <Name>   (1..1)
                            <Address>  (1..1)
    Can anyone plz help me.

    Inbound Message after PE, is empty, so the Request Message Mapping (Technical routing) step is also showing a Empty XML without any structure.
    So you mean to say The inbound Message for BPM -
    > File is empty?.....this clearly means that
    1) the transformation step in BPM is not producing the required XML
    2) some validation is imposed in the mapping...which if not satisfied is not creating the target structure.....
    Can you ensure that the transformation step outside the block is working properly....and that your BPM design is exactly same as in BpmPatternCollectPayload (except the number of times the loop is executed)......
    just few days back even i was stuck in a similar situation....the transformation step outside a Block was not producing a particular element in the target......i made some dummy changes in the mapping and then again included in the transformation step and then my BPM worked fine.......so the conclusion is either the data from block is not going into the transformation step or the transformation step is not creating the target.....
    Regards,
    Abhishek.
    Edited by: abhishek salvi on Jun 30, 2009 12:10 PM

Maybe you are looking for