Should we avoid Graphical mapping and stick with Java mapping?

After developing mappings in XI for a month, I just don't see any good reasons to use Graphical mappings over Java mappings. Maybe some experienced users here can give me some valid reasons why we should choose Graphical mappings. Here is what I think:
Disadvantages of Graphical mappings:
1. No way to perform automated unit testings. This is probably the biggest reason I hate it. You can do some tests manually when you work in Integration Builder. But there is no way you can write some unit testing utilities to automate the task.
2. Complexity. Even for some simple requirements, your Graphical mappings can become complicated and hard to understand. A lot of times, I find myself staring at several dozens of graphical nodes and try to understand what it does.
3. Impossible to reuse. This is totally against the DRY (Don't repeat yourself) principle. For example, to generate messages for JDBC adapter, it is common to have two identical fields for primary keys: one in the access node and another in the key node. If you change the mapping logic in one, you have to remember to change the other.
Advantage with Java mappings:
1. Fully automated unit testing. You can create JUnit tests along with your Java mapping classes and use Maven or other build tools to perform automated unit testing.
2. Your choice of XML parsing and binding. With Java mapping, you can choose any open source framework for XML parsing and binding. For example, with XMLBeans, I can convert XML input message to a Java object, transform to another Java object and write to output message. And each Java object is generated from its corresponding XML schema.
3. Highly reusable. We can use fundamental object-oriented designs to create highly reusable mapping components.
4. Better version control. Since the mappings are just Java classes, we can use CVS or SVN to track code changes.
5. Better build tools. We can fully utilize build tools like Ant and Maven to automate the build, unit tests, or even generate documents and mapping web sites.
So do you guys agree? Maybe I am still new to XI or I am missing some important things. But at this point, I just don't see why I should use Graphical mappings. Is there anyone developing XI interfaces completely with Java mappings?
Thanks in advance for any comments!
Kenny Cheang

Hi Suraj,
> Since its graphical the blocks will take space, but
> there is always an adavntage of processing time.
> Ebven though it may appear bigger, it will take less
> time as compared with Java code (for the same
> mapping).
Could you explain more why the graphical mapping has better performance? I thought the graphical mapping is compiled into a Java class in the runtime anyway.
> Yes thats there, but same goes with Java mapping too
> right (if you haven't mentioned it as constants)
I mainly think about inheritance. If I have to build 10 interfaces and they all have some common behavior, I can create a base interface class to encapsulate the common logic. But with graphical mapping, you have to duplicate them in each interface.
> Disadvantages of Java mapping:
> 1. Performance
Same as above. I just don't see why Java has worse performance. I actually think Java should have better performance. You can optimize the code anyway you want. In some cases, you have to use queue functions in graphical mapping but it's not necessary in Java.
> 2. All might not be well versed with Java Code(though
> everyone may know basic java) .
I am not asking everyone to abandon graphical mapping. I am just wondering which one is better when you have skills for both.
> 3. Lot of standard functions are available in GM
> which you can choose, but you have to remember the
> exact code for those in Java mapping.
You can create functions in Java too. All you have to do is to remember the function name.
Kenny

Similar Messages

  • I'm a Graphic Designer and Animator with a Mid 2012 15" MBP...Programs slowing need up grade

    Hey everyoe,
    I'm a Graphic Designer and Animator with a Mid 2012 15" MBP. My programs get REALLY SLOW, ToonBoom Harmony and Sometimes Illustrator, HELP! I upgraded my Ram to 16GB LONG time ago and it's made a big difference but still the stuff I make is semi complicated/detailed I can't imagine this is the strength of my MBP I refuse to accept that. WIth that said HELP ME PLZ!!! I have deadlines and I dont know what else to do! Steve Jobs my life is your hands right now man...

    Maz0327,
    if you boot into Safe mode, log in, and run your graphic design and animation apps, do they run just as slowly then?

  • Rules on selling my upgraded iPhone 5S and sticking with my iPhone 5?

    I just upgraded to an iPhone 5S and considering there are minimal differences between the iPhone 5S and the iPhone 5 that I am not too concerned about, I was thinking of selling the 5S online and sticking with the iPhone 5. My question: when I get my iPhone 5S, do I have to activate it on my account with my number to accept the terms of the new contract AND THEN switch the device back to the iPhone 5 allowing the 5S to be de-activated and ready for someone else to activate it on their Verizon account? I want to make sure there are no strict rules with this like the phone HAS to be activate on my account for a certain period of time before being de-activated.
    Any help would be appreciated!
    Thanks!

        Hello Craftymom22,
    It sounds like you have a plan set and your just waiting for the icing on the cake.
    The one concern that I do have is that when ordering the device. The device is typically ordered under your mobile number. Therefore when going through the activation instructions the device will attempt to default activate under your line.
    In this situation, it is best to have the MEID and SIM card available for the future user so that it does not try to activate to your account when the next user gets the phone.
    YosefT_VZW
    Follow us on Twitter @VZWSupport

  • Problem with Java Mapping

    Hello experts,
    I developed a Java Mapping Programm for reading filename of a pdf file and giving filename to a rfc structure for calling a rfc module. Thus, I test it via testing interface method and implementing a main method in my mapping class, which works, but if I run it in the integration server  I get the following exception:
    MP: Exception caused of com.sap.aii.af.ra.ms.api.RecoverableException: java.lang.StringIndexOutOfBoundsException: String index out of range: -7: com.sap.aii.af.rfc.afcommunication.RfcAFWException: java.lang.StringIndexOutOfBoundsException: String index out of range: -7
    That is the execute method of my class:
         public void execute(InputStream inputStream, OutputStream outputStream)
              throws StreamTransformationException {
              // TODO Auto-generated method stub
              try { //The following is for the FileName in the File Adapter
                   DynamicConfiguration dynamicconfiguration =
                        (DynamicConfiguration) map.get("DynamicConfiguration");
                   DynamicConfigurationKey key =
                        DynamicConfigurationKey.create(
                             "http://sap.com/xi/XI/System/File",
                             "FileName");
                   String myFileName = dynamicconfiguration.get(key);
                   MappingTrace trace = null;
                   trace.addInfo(myFileName);
                   DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
                   DocumentBuilder db = dbf.newDocumentBuilder();
                   TransformerFactory tf = TransformerFactory.newInstance();
                   Transformer transform = tf.newTransformer();
                   Document docout = db.newDocument();
                   Element root = docout.createElement("Z_SD_WEB_HP_INVOICE_STATUS");
                   root.setAttribute(
                        "xmlns:ns1",
                        "urn:sap-com:document:sap:rfc:functions");
                   docout.appendChild(root);
                   Element docName = docout.createElement("IM_DOCNAME");
                   root.appendChild(docName);
                   Text srcxml = docout.createTextNode(myFileName);
                   docName.appendChild(srcxml);
                   DOMSource domS = new DOMSource(docout);
                   transform.transform((domS), new StreamResult(outputStream));
              } catch (Throwable throwable) {
                   throwable.printStackTrace();
    If I test via main method and testing interface mapping  the generated xml is like:
    <?xml version="1.0" encoding="UTF-8" standalone="no"?><Z_SD_WEB_HP_INVOICE_STATUS xmlns:ns1="urn:sap-com:document:sap:rfc:functions"><IM_DOCNAME>232132.pdf</IM_DOCNAME></Z_SD_WEB_HP_INVOICE_STATUS>
    I do not understand why I get this error in real environment.
    Kind regards,
    Erkan

    Hello experts,
    I found the solution. I will also publish this solution, this is also a point which I sometimes missing here in this forum:
    In creating the rfc-xml with java mapping, so a prefix should be add to the name of the rfc-structure e.g.
    ns1:Z_RFC_CALL. If this prefix is missing, then you get this error:
    com.sap.aii.af.ra.ms.api.RecoverableException: java.lang.StringIndexOutOfBoundsException: String index out of range: -7: com.sap.aii.af.rfc.afcommunication.RfcAFWException: java.lang.StringIndexOutOfBoundsException: String index out of range: -7
    To find this I create a grafical test mapping and I check the test rfc-xml with the java created xml.
    Anyway thanks all for the published recommendations.
    Kind regards,
    Erkan

  • Help with java mapping

    PI File adapter has a processing option u2018Empty-Message Handlingu2019 to ignore or Write Empty Files. In case there is no data created after mapping on target side then this option determines whether to write an empty file or not. But there is a catch to this option when it comes to using it with File Content Conversion which is described in SAP Note u2018821267u2019. It states following:
    I configure the receiver channel with File content conversion mode and I set the 'Empty Message Handling' option to ignore. Input payload to the receiver channel is generated out of mapping and it does not have any record sets. However, this payload has a root element. Why does file receiver create empty output file with zero byte size in the target directory?  Example of such a payload generated from mapping is as follows:                                                           
    <?xml version="1.0" encoding="UTF-8"?>                          
    <ns1:test xmlns:ns1="http://abcd.com/ab"></ns1:test>
    solution :
    If the message payload is empty (i.e., zero bytes in size), then File adapter's empty message handling feature does NOT write files into the target directory. On the other hand, if the payload is a valid XML document (as shown in example) that is generated from mapping with just a root element in it, the File Adapter does not treat it as an empty message and accordingly it writes to the target directory. To achieve your objective of not writing files (that have just a single root element) into the target directory, following could be done:
    Using a Java or ABAP Mapping in order to restrict the creation of node itself during mapping. (This cannot be achieved via Message Mapping)
    Using standard adapter modules to do content conversion first and then write file. 
    can someone help with java mapping that can be used in this case?

    Hi,
        You have not mentioned the version of PI you are working in. In case you are working with PI 7.1 or above then here is the java mapping code you need to add after message mapping in the same interface mapping
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.InputStream;
    import java.io.OutputStream;
    import java.util.Map;
    import javax.xml.parsers.DocumentBuilder;
    import javax.xml.parsers.DocumentBuilderFactory;
    import javax.xml.transform.Transformer;
    import javax.xml.transform.TransformerFactory;
    import javax.xml.transform.dom.DOMSource;
    import javax.xml.transform.stream.StreamResult;
    import org.w3c.dom.Document;
    import com.sap.aii.mapping.api.AbstractTransformation;
    import com.sap.aii.mapping.api.StreamTransformationException;
    import com.sap.aii.mapping.api.TransformationInput;
    import com.sap.aii.mapping.api.TransformationOutput;
    public class RemoveRootNode extends AbstractTransformation{
         public void execute(InputStream in, OutputStream out)
         throws StreamTransformationException {
    // TODO Auto-generated method stub
    try
         DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
         DocumentBuilder builderel=factory.newDocumentBuilder();
         /*input document in form of XML*/
         Document docIn=builderel.parse(in);
         /*document after parsing*/
         Document docOut=builderel.newDocument();
         TransformerFactory tf=TransformerFactory.newInstance();
         Transformer transform=tf.newTransformer();
         if(docIn.getDocumentElement().hasChildNodes())
              docOut.appendChild(docOut.importNode(docIn.getDocumentElement(),true));
              transform.transform(new DOMSource(docOut), new StreamResult(out));
         else
              out.write(null);
    catch(Exception e)
    public void setParameter(Map arg0) {
    // TODO Auto-generated method stub
    public static void main(String[] args) {
    // TODO Auto-generated method stub
    try{
         RemoveRootNode genFormat=new RemoveRootNode();
         FileInputStream in=new FileInputStream("C:\\apps\\sdn\\rootNode.xml");
         FileOutputStream out=new FileOutputStream("C:\\apps\\sdn\\rootNode1.xml");
         genFormat.execute(in,out);
         catch(Exception e)
         e.printStackTrace();
    public void transform(TransformationInput arg0, TransformationOutput arg1)
              throws StreamTransformationException {
         // TODO Auto-generated method stub
         this.execute(arg0.getInputPayload().getInputStream(), arg1.getOutputPayload().getOutputStream());
    In case you are working in PI 7.0 you can use this code
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.InputStream;
    import java.io.OutputStream;
    import java.util.Map;
    import javax.xml.parsers.DocumentBuilder;
    import javax.xml.parsers.DocumentBuilderFactory;
    import javax.xml.transform.Transformer;
    import javax.xml.transform.TransformerFactory;
    import javax.xml.transform.dom.DOMSource;
    import javax.xml.transform.stream.StreamResult;
    import org.w3c.dom.Document;
    import com.sap.aii.mapping.api.StreamTransformation;
    import com.sap.aii.mapping.api.StreamTransformationException;
    public class RemoveRootNode implements StreamTransformation{
         public void execute(InputStream in, OutputStream out)
         throws StreamTransformationException {
    // TODO Auto-generated method stub
    try
         DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
         DocumentBuilder builderel=factory.newDocumentBuilder();
         /*input document in form of XML*/
         Document docIn=builderel.parse(in);
         /*document after parsing*/
         Document docOut=builderel.newDocument();
         TransformerFactory tf=TransformerFactory.newInstance();
         Transformer transform=tf.newTransformer();
         if(docIn.getDocumentElement().hasChildNodes())
              docOut.appendChild(docOut.importNode(docIn.getDocumentElement(),true));
              transform.transform(new DOMSource(docOut), new StreamResult(out));
         else
              out.write(null);
    catch(Exception e)
    public void setParameter(Map arg0) {
    // TODO Auto-generated method stub
    public static void main(String[] args) {
    // TODO Auto-generated method stub
    try{
         RemoveRootNode genFormat=new RemoveRootNode();
         FileInputStream in=new FileInputStream("C:\\apps\\sdn\\rootNode.xml");
         FileOutputStream out=new FileOutputStream("C:\\apps\\sdn\\rootNode1.xml");
         genFormat.execute(in,out);
         catch(Exception e)
         e.printStackTrace();
    The code for PI 7.0 should also work for PI 7.1 provided you use the right jar files for compilation, but vice-versa is not true.
    Could you please let us know if this code was useful to you or not?
    Regards
    Anupam
    Edited by: anupamsap on Dec 15, 2011 9:43 AM

  • Configure CRS2008 to using AD and Kerberos with Java application servers.

    Hi All,
    I have configure CRS2008 to using AD and Kerberos with Java application servers. Domain Controller is installed on W2K3 Server. In addition, CRS2008 is installed on another W2k3 Server.
    I have create service account in domain controller: CMSACC
    I have create two user account: CRuser1 and CRuser2
    I have create domain group: CRSGroup
    After I had run the setspn in domain controller,I got the message at below:
    Registered ServicePrincipalNames for CN=CMSACC, OU=TEST, DC=BD, DC=com:
        BOBJCentralMS/BDMGTSRV.BD.com
    CMC Setting:
    AD Administration Name: BD\administrator
    Default AD Domain: BD.com
    Add AD Group(Domain\Group): secWinAD:CN=CRSGroup,OU=TEST,D=BD,DC=com
    Service principal name:BOBJCentralMS/CMSACCatBD.com
    I have create a WINNT folder in root directory.Moreover and save bcsLognin.conf and Krb5.ini at here.
    bscLogin.conf:
    com.businessobjects.security.jgss.initiate {
    com.sun.security.auth.module.Krb5LoginModule required;
    krb5.ini:
    [libdefaults]
    default_realm = BD.com
    dns_lookup_kdc = true
    dns_lookup_realm = true
    [realms]
    forwardable = true
    BD.com = {
    default_domain = BD.com
    kdc = BDMGTSRV.BD.com
    I have tested the Kerberos,using kinit CMSACCatBD.com password, and got error message at below:
    Exception: krb_error 41 Message stream modified (41) Message stream modified
    KrbException: Message stream modified (41)
            at sun.security.krb5.KrbKdcRep.check(KrbKdcRep.java:53)
            at sun.security.krb5.KrbAsRep.<init>(KrbAsRep.java:96)
            at sun.security.krb5.KrbAsRep.getReply(KrbAsRep.java:486)
         at sun.security.krb5.KrbAsRep.getReply(KrbAsRep.java:444)
         at sun.security.krb5.internal.tools.Kinit.sendASRequest(Kinit.java:310)
         at sun.security.krb5.internal.tools.Kinit.<init>(Kinit.java:259)
         at sun.security.krb5.internal.tools.Kinit.main(Kinit.java:106)
    My problem is failed to logon CMC and infoview and got error message at below:
    Account Information Not Recognized: Active Directory Authentication failed to log you on. Please contact your system administrator to make sure you are a member of a valid mapped group and try again. If you are not a member of the default domain, enter your user name as UserNameatDNS_DomainName, and then try again.
    Actually, I am sucessful to logon Business View manager with CRuser1. However, I fail to logon CMC and infoview and got the above error. Have you any suggestion to solve this problem?
    Ken.

    if you can logon with client tools then that should be an indication that the service account running the CMS IS working! Good news.
    So the problem is likely with the java portion (krb5/bsclogin or java options)
    If the files are in c:\winnt\ (if not copy them there) and perform c:\program files\business objects\javasdk\bin\kinit username
    then enter and password/enter again
    Probably get the same message. To note in your krb5.ini all domain info must be in CAPS (the .com appears to be in lower case)
    kinit works with just the krb5.ini, java SDK and AD (removing BO config and the service account from the picture). Once that works if your java options are specified properly you should be able to login to CMC/infoview.
    also 1 last point. Add udp_preference_limit = 1 to the krb5 lib defaults section
    libdefaults
    default_realm = BD.com
    dns_lookup_kdc = true
    dns_lookup_realm = true
    udp_preference_limit = 1
    Regards,
    Tim

  • How can I get rid of Apple Maps and Put the Google Maps back?

    I wanted to know how to remove the Apple Maps and reinstall the Google Maps. The Apple Maps is a very inferior programme and not worth the space on the. Computer. It can't find anything. It's a complete waste of time.
    So my original question is, how to get rid of it, and put the Google Maps back?

    CHances are google maps are never coming back as part of the bundled OS. Apple and Google seem to have parted ways (possibly has something to do with Google having their apps on other devices from other manufacturers but no one knows for sure)
    Since preinstalled apps cannot be deleted, the most you can do is ignore the icon, shove it back on a back menu page (I have a 4th menu page on my iPad containing nothing but the bundled apps I consider worthless. I just ignore that page and never go there) and then put a shortcut to google maps on your iPad or find a third party map app you like better.

  • Multimapping with java mapping

    Hi,
      i am trying to do multimapping with java mapping, but I am getting error  "unexpected end-of-file" in SXMB_MONI.
    for multimapping I have appended necessary code...
    <?xml version="1.0" encoding="UTF-8"?>
    <ns0:Messages xmlns:ns0="http://sap.com/xi/XI/SplitAndMerge">
    <ns0:Message1>
    please suggest me solution.

    I am creating 1:N multimapping and for that i have written 2 java programs, one consist of "execute" method and another "main" method.
    and  java code is:
    public class Mapping_test implements StreamTransformation {     
         private Map map;
         public void setParameter(Map param) {
              map = param;
         public void execute(InputStream in, OutputStream out) {
                   try {       out.write( "<?xml version=\"1.0\" encoding=\"UTF-8\"?>".getBytes());
                   out.write("<ns0:Messages xmlns:ns0=\"http://sap.com/xi/XI/SplitAndMerge\">".getBytes());
                    out.write("<ns0:Message1>".getBytes());
                    out.write("<ns1:FIN_GBO_AR_POSTING xmlns:ns1=\"urn:sap-com:AR_POSTING\">".getBytes());
                          out.write("<MS_GBO_Header>".getBytes());
                          out.write(("<SourceSystem>" + "FIS0045_FIS" +  "</SourceSystem>").getBytes());
                          out.write(("<TargetSystem>" + "FIS0101_SAP_ECC" +  "</TargetSystem>").getBytes());
                          out.write(("<InterfaceID>" + "sap"   +  "</InterfaceID>").getBytes());
                          out.write("</MS_GBO_Header>".getBytes());
                   out.write("</ns1:FIN_GBO_AR_POSTING>".getBytes());
                   out.write("<ns1:FIN_GBO_AR_POSTING xmlns:ns1=\"urn:sap-com:AR_POSTING\">".getBytes());
                          out.write("<MS_GBO_Header>".getBytes());
                          out.write(("<SourceSystem>" + "FIS0045_FIS" +  "</SourceSystem>").getBytes());
                          out.write(("<TargetSystem>" + "FIS0101_SAP_ECC" +  "</TargetSystem>").getBytes());
                          out.write(("<InterfaceID>" + "sap"   +  "</InterfaceID>").getBytes());
                          out.write("</MS_GBO_Header>".getBytes());          
                   out.write("</ns1:FIN_GBO_AR_POSTING>".getBytes());
                           out.write("</ns0:Message1>".getBytes());
                           out.write("</ns0:Messages>".getBytes());
      catch(Exception e)
    now I am getting error "unexpected end-of-file" mentioned above.
    please suggest ..

  • BC4J and OAS with Java Application Client

    Could you show me an example about using the BC4J and OAS with Java Application client.
    The JDeveloper Help is not enough to solve this kind of problem.
    Configuration:
    Jdeveloper 3.1
    OAS 4.0.8.1
    Database 7.3.4
    null

    if you can logon with client tools then that should be an indication that the service account running the CMS IS working! Good news.
    So the problem is likely with the java portion (krb5/bsclogin or java options)
    If the files are in c:\winnt\ (if not copy them there) and perform c:\program files\business objects\javasdk\bin\kinit username
    then enter and password/enter again
    Probably get the same message. To note in your krb5.ini all domain info must be in CAPS (the .com appears to be in lower case)
    kinit works with just the krb5.ini, java SDK and AD (removing BO config and the service account from the picture). Once that works if your java options are specified properly you should be able to login to CMC/infoview.
    also 1 last point. Add udp_preference_limit = 1 to the krb5 lib defaults section
    libdefaults
    default_realm = BD.com
    dns_lookup_kdc = true
    dns_lookup_realm = true
    udp_preference_limit = 1
    Regards,
    Tim

  • Nvidia GeoForce Go 7600 graphics driver and IQ770 with Windows Vista Home Premium 32 bit edition

    I have been having problems with my screen for several months now:  every so often, for no apparent reason, it loses some of the pixels.  I can still read the items on the screen, but the resolution is trashed.  It happens intermittently and then goes back to normal.  I have tried uninstalling the graphics driver and letting the computer go find it on a reboot.  This does not work.  I have also tried installing the original graphics driver.  This does not work either.
    If I look in the "Problem Reports" area in Control Panel, there is a graphics related error: 
    Error Message: STOP 0x000000EA THREAD_STUCK_IN_DEVICE_DRIVER (Q293078)  The resolution listed is to reinstall the device driver (which I've tried dozens of times without success) or to change the computer's performance settings, which also does nothing.  I still get the occasional loss of screen clarity which returns to normal all by itself.
    Is anyone else seeing this problem?  Does anyone have a resolution?
    I have tried the latest graphics driver available on the hp website, from 8-2008 as well as the originally installed version from January 2007.  The version of Windows is Vista Home Premium 32 bit edition, Service Pack 1.
    If I completely uninstall the graphics driver, and do not reload any, the screen performance is fine, but then there are other problems, such as graphics acceleration.
    Thanks for your help.

    For the IQ700 series
    If you're running Windows Vista SP2, there is a patch for USB patch for NVIDIA chipsets
    http://support.microsoft.com/kb/975163/ 
    If you're running Windows 7, install this patch
    http://h30434.www3.hp.com/t5/Lockups-Freezes-Hangs/Driver-update-for-Win7-USB-issue-on-nVidia-chipse...
    And only use the driver from the system manufacturer's website or Windows Update. Do not use the latest drivers from NVIDIA's website for the IQ700 series

  • Help Installing Leopard and issues with partition maps.

    Hi, i've been trying to install leopard on my MacPro G5 to no avail, as my super-drive had failed, i've tried pulling out the HDD and mounting it via an external enclosure and connecting the mounted HDD to my Intel based mac and installing Leopard from a disc running from my Intel based mac to the mounted HDD from my MacPro.
    The problem i've encountered is with the partition maps, OSX installer does not allow me to install Leopard onto the external HDD with Apple Partition Map and insists i re-partition it as GUID which i can't do so as it'll mean i wouldn't be able to boot it from my MacPro G5, thus i'm wondering if anyone have an idea on how to get Leopard installed in such circumstances.
    Thanks!

    Hi-
    Welcome to Discussions!
    First, let's get the terms straight.
    There is a Mac Pro, which is an Intel processor, using EFI and utilizing the GUID partition map.
    There is a G5, which is a PPC processor, using Open Firmware and the APM scheme.
    There is no Mac Pro G5
    A Mac Pro can use an APM mapped drive to boot from, but cannot install an OS to it.
    In order to install an OS to a drive while installed in or connected to a Mac Pro, the drive must be formatted using the GUID scheme.
    A G5 must use an APM formatted drive to boot.
    To install Leopard on a G5, one must use a retail version of Leopard (not a gray disc that shipped with an Intel Mac), boot to the install disc, format the drive and install.

  • SOAP Adapter with JAVA Mapping.

    Hi,
    I am trying a scenario,
    file->SOAP Receiver->SOAP Sender->IDOC
    in this I have used two interface mapping(and two mapping also).
    In first mapping i used Java mapping. so the WSDL of this is of no use for me.
    and in second mapping graphical mapping is performed.
    but my scenario is not woking completely. only one messge in SXMB_MONI is displayed. but it should be two. I think there is some problem in java mapping.
    in java mapping i have generated XML output, which will be input of SOAP sender.
    plaese suggest me the format which should be generated by java mapping.

    Sandeep,
    Let me try to put your requiremen,
    You have 2 scenariom
    FILE to SOAP
    SOAP to Idoc
    When the file becomes availbale, the Scenario 1 triggers of Scenario 2. Scenario 2 provides you a WSDL and so scneario 1 's output should be of the format of this WSDL.
    Hope I am on the correct track.
    If yes, just import this WSDL into your IR, and see the format in which it expects the data by using it as a message type in some mapping ( dummy mapping ) and then in your Java Mapping create a output of the same format, with the same namespace etc.
    Regards,
    Bhavesh

  • Issue with java mapping in a multi-mapping scenario

    Hi
        We have  a 1:n multiple mapping scenario in XI and the source is R3 proxy and target side is files. So, creating multiple file from a single message from R3 .
    R3 --> XI --> Multiple files
    Structure of the output of the multi-mapping is
    - <ns0:Messages xmlns:ns0="http://sap.com/xi/XI/SplitAndMerge">
    - <ns0:Message1>
    <Transaction>
    </Transaction>
    <Transaction>
    </Transaction></ns0:Message1>
    </ns0:Messages>
    wherein each Transaction node represents a file.
    Now, we need to introduce a constant /string like
    <!DOCTYPE Transaction PUBLIC \"-//XXXXXX//DTD BatchReceiptAuthorization//EN\" \"http://dtd.XXXXXXX.com/dtds/ReceiptAuthorization.dtd\">
    on each of the files at the very beginning - i.e within each transaction node , in the above structure, we need the above DTD string to be written.  To do this, we added a java mapping as the second mapping after the message mapping that creates this string. Is this the right approach and would it produce what we are expecting ?
    import java.io.BufferedReader;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.io.OutputStream;
    import java.util.Map;
    import com.sap.aii.mapping.api.StreamTransformation;
    import com.sap.aii.mapping.api.StreamTransformationException;
    import com.sap.aii.mapping.api.StreamTransformationConstants;
    import com.sap.aii.mapping.api.DynamicConfiguration;
    import com.sap.aii.mapping.api.AbstractTrace;
    public class ModifyRootAndDelay implements StreamTransformation {
         AbstractTrace myTrace;
    public void execute(InputStream input, OutputStream output) throws StreamTransformationException {
              try{
                   BufferedReader reader = new BufferedReader(new InputStreamReader(input));
                   String NameSpacePrefix = "<!DOCTYPE Transaction PUBLIC \"-//innotrac//DTD BatchReceiptAuthorization//EN\" \"http://dtd.innotrac.com/dtds/ReceiptAuthorization.dtd\">";
                   String sLine = null;
                   StringBuffer XmlMsg= new StringBuffer();
                   String Result,PayloadBody;
                   int indexOfFirst;
                   while ((sLine = reader.readLine()) != null) {
                        XmlMsg.append(sLine);
                   String StartingTag = XmlMsg.toString();
                   indexOfFirst = StartingTag.indexOf("<MerchantID>") ;
                   PayloadBody=new String(XmlMsg.substring(indexOfFirst));
                   Result=NameSpacePrefix.concat(PayloadBody);
                   output.write(Result.getBytes());
              /*     Thread.sleep(200000); */
              }catch(Exception e){
                   myTrace.addWarning("Exception raised in the JavaMapping:modifyNamespace.java""\n The Exception Message: " e.getMessage());
                   throw new RuntimeException(e.getMessage()) ;
            }     public void setParameter(Map param) {
              myTrace = (AbstractTrace) param
                        .get(StreamTransformationConstants.MAPPING_TRACE);

    Hi XI Gurus
                       In my scenario, I sent the inputstream that is being passed to the Java execute method - to trace and I see that the whole of the xml file - as shown below  - which is the output of message mapping ( from the first mapping step ) in sent to the execute method of the java mapping a single call
    <ns0:Messages xmlns:ns0="http://sap.com/xi/XI/SplitAndMerge">
    <ns0:Message1>
    <Transaction> </Transaction>
    <Transaction> </Transaction>
    </ns0:Message1>
    <ns0:Messages>
    So, I modified Java mapping program to look for multiple occurences of <Transaction> tag and prefix them with my constant DTD Literal - which is the primary reason , why I had to use Java mappings after the message mapping.
    Now, I get an error is XI- SXMB_MONI
    - <SAP:Error xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="">
      <SAP:Category>XIServer</SAP:Category>
      <SAP:Code area="MAPPING" />
      <SAP:P1>unexpected symbol; expected '<', '</', entity refe</SAP:P1>
      <SAP:P2>rence, character data, CDATA section, processing i</SAP:P2>
      <SAP:P3>0</SAP:P3>
      <SAP:P4>113</SAP:P4>
      <SAP:AdditionalText />
      <SAP:ApplicationFaultMessage namespace="" />
      <SAP:Stack>The exception occurred (program: CL_XMS_MAIN===================CP, include CL_XMS_MAIN===================CM00A, line: 609)</SAP:Stack>
      <SAP:Retry>M</SAP:Retry>
      </SAP:Error>
    Should I create multiple outputs - as many as the numberof target split files ( of type outputstream ) from the execute method in the java program ?

  • JAVA Sax mapping replaces &_amp; with & causing mapping to fail

    Hi all,
    I have the following mapping scenario:
    Source XML -> Java Sax Mapping -> Graphical Mapping -> Target structure
    The source XML is valid and caters for special characters like & which appear as &_amp; in the XML (ignore the underscore _ without it the editor strips the amp;, isn't that ironic!).
    The second step of the interface mapping, which is the graphical map, is failing. It seems that the Java Sax mapping is replacing &_amp; with & in the XML, which is then causing the graphical map to fail as it cannot handle the special character &.
    Is there anyway I can prevent the Java Sax mapping from changing &amp; to &
    Or is the only solution for me to write extra code in the Java map to convert & back to &_amp; before passing to the second mapping step????
    Any help appreciated.
    Che
    Edited by: Che Eky on Feb 18, 2009 11:05 PM

    Hi..
    Use this in your source xml file for '&' ->"&_amp;" remove the underscore
    Regards..
    Krishna..
    Edited by: PrasannaKrishna Mynam on Feb 19, 2009 2:20 PM
    Edited by: PrasannaKrishna Mynam on Feb 19, 2009 2:20 PM

  • Perform Hamming window and FFT with Java

    Hi all,
    I am trying to apply Hamming window on my lengthy sound data soundSample[1000] with window length 100. Then proceed with FFT.
    And i found that java does have the package for Hamming window and FFT. As below,
    http://code.compartmental.net/minim/javadoc/ddf/minim/analysis/FFT.html
    http://marf.sourceforge.net/api/marf/math/Algorithms.Hamming.html
    But i hardly find an example that illustrate how to use the package in a java program. So no idea how should i use the method in package.
    Please advise and appreciate if reference is provided.
    Thank you.

    Hi,
    I have spent sometimes to study and do the coding for FFT on audio samples.
    My project is to study the FFT working by performing the FFT on audio sampled data.
    After this is done, then only proceed to extract the pitch value in the audio data.
    Below is the coding that i have done by referring to the provided steps:
    In my main, i call this method and past the retrieved sampled sound data to this method.
    public static void Analyze(int[] soundSample,float sample_rate ) {
            int N = (int)sample_rate/5;
            int Number_Sample = soundSample.length;
            Complex[] fftBuffer = new Complex [2*N];
            Complex[] fftResult = new Complex [2*N];
            Complex [] lastN = new Complex [N];   // The array to save the last N sample
            int delay = 0;
            double delta = 2*Math.PI/(2*N);
            // I have no idea how can i convert my sample array to double so that it will be in the range of [-1,+1]
            while(delay <=soundSample.length){
                //Extract the 2N sample for FFT analysis and convert the data to complex number.
                for (int z=0; z<2*N; z++){
                    fftBuffer[z] = new Complex(soundSample[z+delay],0) ;                
                for (int i=N-1;i>=N/2; i-- ){
                    lastN[N-1-i] = fftBuffer;
    for (int z=0; z<2*N; z++){
    fftBuffer[z] = fftBuffer[z].times(0.54-0.46*Math.cos(z*delta));
    fftResult = FFT1.fft(fftBuffer);
    delay = 2*N + delay;
    1) I was trying to perform FFT with 2N samples then keep on looping the FFT method until 2N reaches the ends of sampled data.
    But the FFT that i am working with is radix 2... It doesn't work with my 2N samples... Please teach me how should i work out FFT regardless the number of sample?
    2) The hamming window coefficient i m using is based on http://www.mathworks.com/help/toolbox/signal/hamming.html . I am working on index [0:2N] ..
    Is it appropriate?
    3) According to your No1 steps, the acceptable frequency resolution is 5Hz. May i know what is this representing? And is it application for most of the FFT application? How can i determine the frequency resolution that i should used in my project?
    Sorry for late reply as i was trying to work out the thing..
    Hereby attach to your the my coding.. and hopes to have your guidance and tutorial how to extract the pitch for recording audio file with Java.
    I have done the pitch extraction with MATLAB.. but Matlab as built-in FFT function... 
    So i m now get stucked how to perform FFT on audio sound sample regardless the N value of sound sample for FFT buffer.
    Many thanks for your former advise... and
    Looking forward for your replies again.
    Happy New Year 2011 :)
    Edited by: 诸葛 on Dec 31, 2010 9:29 AM                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

Maybe you are looking for

  • FTP - Receiver Comm channel error

    Scenario: Send a file to a 3rd party via FTP adapter Error: MONI is OK but comm channel monitor is in error state and error is displayed as: An error occurred while connecting to the FTP server 'xxx.xx.xx.xxx:21'. The FTP server returned the followin

  • Inbound processing of segment E1EDT13 - QUALF 499 in SHPMNT idoc

    Dear all, we are currently facing the problem, that we want to send customized deadline dates in a SHPMNT idoc into our system. I set up the customizing accordingly, maintained the data in a outbound delivery and created an idoc out of it. I saw, tha

  • Import scripts from another computer

    I bought a new computer and exported the scripts from my old computer to a flat file, then imported onto the new computer (after a new install of XE from the website). I got a security error that I was not in the same security group as the exporter!

  • Why is my computer shutting down randomly

    Today I was on my mac using microsoft words i finished using it and then went to Youtube. However when i clicked the link on google chrome my mac osx automatically shut down. And now i cant turn it back on or either. I tired the power button, pluggin

  • AD as the primary DataSource 5.x CUP

    Does GRC AC 5.x Compliant User Provisioning have a way to connect the DataSource to an AD structure that is composed of a root domain with four child domains, all within a single forest?  The problem I have today is linking to such an AD structure be