Dynamic XSLT processing - parameters?

Goal: I want my XSLT mapping to be dynamic, because I expect a certain number of fields with values in my XML, but these field names may change over time, so I have to make it dynamic.
Step 1: I made my output dynamic by using dynamic internal tables (field-symbols). So that I can change my internal tables easily with a custom-table. Done!
Step 2: My XSLT transformation should be handled dynamically. Not done!
Is this step 2 even possible?
I was thinking of passing PARAMETERS to my CALL TRANSFORMATION statement so that I can let know what fieldnames my XSLT can expect, but then the question remains if the ZTEST transformation can read this out for my purpose.
CALL TRANSFORMATION ztest
PARAMETERS (gt_param)
SOURCE XML gt_itab
RESULT (gt_result_xml).
...knowing that gt_param can only by of type
ABAP_TRANS_PARMBIND_TAB (for specifying strings) or
ABAP_TRANS_OBJBIND_TAB (for specifying object references) or
ABAP_TRANS_PARM_OBJ_BIND_TAB (for specifying data references).
Thus, is it possible to make my TRANSFORMATION handling dynamic (by using PARAMETERS or something else)? If yes, does anybody know how. Examples are appreciated.
Mehmet Metin

This can be done with basic XSLT. Use the XPath expression '*' to apply a template to each child of a given node (for example, if a node represents an ABAP structure, its children represent its components). In the template, use the XPath-function 'local-name()' to retrieve the name of the current element without namespace. Now you should have everything you need for creating the result tree.
For a working example in our XI system, see the following template:
<xsl:template match="ZMEDI_MELDUNG_DET">
  <xsl:element name="{SEGID_N}">
    <xsl:element name='SEGID_N'>
      <xsl:value-of select="*[position()=1]"/>
    </xsl:element>
    <xsl:for-each select="*[position()>1 and text() != '']">
      <xsl:element name="{local-name()}">
        <xsl:value-of select="."/>
      </xsl:element>
    </xsl:for-each>
  </xsl:element>
</xsl:template>
Here, I copy the components of the ABAP source structure ZMEDI_MELDUNG_DET (the structure name was fixed in my case, but it's easy to identify it without specifying its name, if it should be given at runtime only) into a result tree fragment with parent node name = the content of the ABAP component SEGID_N, the first child having the fixed name SEGID_N with (redundant) its value again, and after that all the components of the source structure, whatever they may be, if their content is non-empty (this was a format required by another non-SAP-development team).
Regards,
Rüdiger

Similar Messages

  • Multilevel dynamic approval process using precondition loop block

    HI,
    I am trying to create a multivel dynamic approval process using a precondition loop block. The structure of my process is,
    Process->1)Sequential Block containing requestor action->processor of requestor action is initiator
                2)Precondition Loop Block containing
                        i)Loop Decision action containing a business logic callable object
                        ii)Loop Body Block containing Approver action-processor of approver action is filled from context parameter
    The loop decision action implements the logic for loop decision. Can anybody help me by suggesting the proper target of each of these actions, and the processor for loop decision action?
    Whenever I am initiating the process, the requestor action is getting executed,  On completion of this action I am getting a message "No activity is currently selected", that is, it is not entering the precondition loop block.
    Please guide me with the proper process flow of this and how to adjust the roles and parameters
    Thanks,
    Swaralipi

    Posted another thread on the same issue

  • Dynamic XSLT Sort Routine to XML (NCName:* or QName was expected)

    I am trying to create a XSLT Stylesheet to perform dynamic sorts (via parameters) on XML data with the desired output being XML... I've declared everything static in my StyleSheet for debugging purposes:
    XML Document:
    <?xml version="1.0" encoding="UTF-8"?>
    <Content>
    <task:TASK id="25"
    src:col="/db/iconnect/MappingCenterCRM/default/TASK"
    src:key="25" xmlns:src="http://xml.apache.org/xindice/Query" xmlns:task="http://iconnect.com/schemas/task">
    <task:user_id>123</task:user_id>
    <task:long_description>This is my description...</task:long_description>
    <task:priority>1</task:priority>
    <task:status>Completed</task:status>
    </task:TASK>
    <task:TASK id="26"
    src:col="/db/iconnect/MappingCenterCRM/default/TASK"
    src:key="26" xmlns:src="http://xml.apache.org/xindice/Query" xmlns:task="http://iconnect.com/schemas/task">
    <task:user_id>123</task:user_id>
    <task:long_description>Another description...</task:long_description>
    <task:priority>1</task:priority>
    <task:status>New</task:status>
    </task:TASK>
    </Content>
    Here is my Stylesheet:
    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:task="http://iconnect.com/schemas/task" xmlns:src="http://xml.apache.org/xindice/Query">
    <xsl:output method="xml" />
    <xsl:param name="sortBy" select="task:long_description" />
    <xsl:param name="xPath" select="//Content/task:TASK" />
    <xsl:param name="orderByType" select="ascending" />
    <xsl:template match="$xPath | node()">
    <xsl:copy>
    <xsl:apply-templates>
    <xsl:sort select="$sortBy" order="ascending"/>
    </xsl:apply-templates>
    </xsl:copy>
    </xsl:template>
    </xsl:stylesheet>
    When I run in XMLSpy, I get the desired results, but when running using Xerces, I get the following error:
    javax.xml.transform.TransformerException: A node test that matches either NCName:* or QName was expected.

    I am trying to create a XSLT Stylesheet to perform dynamic sorts (via parameters) on XML data with the desired output being XML... I've declared everything static in my StyleSheet for debugging purposes:
    XML Document:
    <?xml version="1.0" encoding="UTF-8"?>
    <Content>
    <task:TASK id="25"
    src:col="/db/iconnect/MappingCenterCRM/default/TASK"
    src:key="25" xmlns:src="http://xml.apache.org/xindice/Query" xmlns:task="http://iconnect.com/schemas/task">
    <task:user_id>123</task:user_id>
    <task:long_description>This is my description...</task:long_description>
    <task:priority>1</task:priority>
    <task:status>Completed</task:status>
    </task:TASK>
    <task:TASK id="26"
    src:col="/db/iconnect/MappingCenterCRM/default/TASK"
    src:key="26" xmlns:src="http://xml.apache.org/xindice/Query" xmlns:task="http://iconnect.com/schemas/task">
    <task:user_id>123</task:user_id>
    <task:long_description>Another description...</task:long_description>
    <task:priority>1</task:priority>
    <task:status>New</task:status>
    </task:TASK>
    </Content>
    Here is my Stylesheet:
    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:task="http://iconnect.com/schemas/task" xmlns:src="http://xml.apache.org/xindice/Query">
    <xsl:output method="xml" />
    <xsl:param name="sortBy" select="task:long_description" />
    <xsl:param name="xPath" select="//Content/task:TASK" />
    <xsl:param name="orderByType" select="ascending" />
    <xsl:template match="$xPath | node()">
    <xsl:copy>
    <xsl:apply-templates>
    <xsl:sort select="$sortBy" order="ascending"/>
    </xsl:apply-templates>
    </xsl:copy>
    </xsl:template>
    </xsl:stylesheet>
    When I run in XMLSpy, I get the desired results, but when running using Xerces, I get the following error:
    javax.xml.transform.TransformerException: A node test that matches either NCName:* or QName was expected.

  • Dynamic XSLT source code generation based upon internal table

    Hi,
    Is there anyway to generate dynamic XSLT source code based upon final structure of output internal table and call dynamic generated XSLT in program?
    CALL TRANSFORMATION z_transformation
                PARAMETERS
                 p_shared_string = lo_shared_str_nodeset
                SOURCE XML g_sheet_data
                RESULT lt_data = i_data[].
    Source code example of XSLT transformation -
    <xsl:template match="/">
         <asx:abap version="1.0">
           <asx:values>
             <LT_DATA>   "Internal table
               <xsl:for-each select="ss:worksheet/ss:sheetData/ss:row">
                 <xsl:if test="position() &gt; 1">
                   <item>
                     <FIELD1>
                       <xsl:variable name="cell_id" select="concat('A', position())"/>
                       <xsl:variable name="v_index" select="ss:c[@r=$cell_id][@t='s']/ss:v"/>
                       <xsl:if test="$v_index">
                         <xsl:value-of select="$V_SHARED_STRING/sst/si[$v_index + 1]/t"/>
                       </xsl:if>
                       <xsl:if test="not($v_index)">
                         <xsl:value-of select="ss:c[@r=$cell_id]/ss:v"/>
                       </xsl:if>
                     </FIELD1>
                 </item>
                 </xsl:if>
               </xsl:for-each>
             </LT_DATA> "internal table
           </asx:values>
         </asx:abap>
       </xsl:template>
    </xsl:transform>

    In addition,
    We are converting binary data of excel from application server into internal table but currently we created two XSLT transformation to achieve this one for deleting name space and other for converting data into internal table format.
    We want to make our source code for future use also,Is there anyway to generate XSLT source code dynamically?Above mentioned code is snippet of data extracting which we are doing but this transformation is hard coded.
    Any help is appreciated.
    BR,
    Praveen

  • How To Get GP Process Parameters in a Webdynpro Application runtime

    Hi ,
    Iu2019 ll hope you can help me to solve my problem with GP process.
    Iu2019 m trying to get GP process parameters from a Webdynpro application.
    I have to get parameters during the process runtime in every step of the process using
    a webdynpro application with the following code:
          IGPRuntimeManager rtm = GPProcessFactory.getRuntimeManager();
          try {
                IGPProcessInstance processInst = rtm.getProcessInstance(processId,userContext);
                IGPProcessInstanceInfo procInfo = rtm.getProcessInstanceInformation(processInst.getID(),
    userContext.getSAPUser());
                IGPStructureInfo inputstructInfo = processInst.getTemplate().getInputParameters();
                IGPStructure inputparams = GPStructureFactory.getStructure(inputstructInfo);
          } catch (GPEngineException e) {
                // TODO Auto-generated catch block
    //          e.printStackTrace();
                manager.reportException("GPEngineException:"+getStackTrace(e), false);
          } catch (GPInvocationException e) {
                // TODO Auto-generated catch block
    //          e.printStackTrace();
                manager.reportException("GPInvocationException:"+getStackTrace(e), false);
    But printing the values of attributes with u201Cinputparams.getAttributeAs... ("param name")u201C the value returned is always 0. On the contrary if I check the same parameters structure in the runtime
    GP view of the portal, the values are those that I have set in the start process wizard.
    Have you a solution for this question?
    Thanks in advance
    Luca

    hi Abhimanyu
    I believe originally access to session was deliberately not made available inside WDA.
    Growing security concerns due to misuse of session information and
    perhaps other reasons as well.
    X.509  is considered a better approach.
    This may not help you in your problem.
    But you may see a trend in WDA pushing more robust and client independent
    approaches.
    Full x.509 access should remove the need for session fiddling.
    Also when developers access such session info directly, there is a possiblity
    when they dont understand the technology exactly that they create a security hole.
    You may know how to do safely, it is however discouraged.
    Im not aware of a way to get at the session info inside the WDA framework.
    Well not without a mod to the framework.
    It may be possible without a mod, but I dont know the trick.
    If someone has a little trick... please post.
    You may need to use BSP, if your only solution requires access to the session info.
    regards
    Phil

  • Receiver FTP processing parameters should not add time stamp

    Hi Gurus,
               I want to write the file at receiver end with the same name as in source directory.. (I dont want the time stamp to be added to my file at receiver side)
             For that i have configured processing parameters as
                1) File Construction mode --- create
                2) checked Overwrite existing file
                3) Put File -
    use temporary file
                4) Temporary File Name Scheme --- rec_*.tmp
                5) File type -
    binary
    But the files are not written in target directory..
    How to troubleshoot it...
    Thanks and Regards,
    govada.

    Hi,
    open RWB - coomponent monitoring
    and then - adapter monitoring or communication channel monitoring
    (depending on SP of your XI)
    then find your channel and you will see the error - if there is any
    BTW
    if you don't want the timestamp just don't use:
    Add Time Stamp property in the file adapter
    Regards,
    michal
    <a href="/people/michal.krawczyk2/blog/2005/06/28/xipi-faq-frequently-asked-questions"><b>XI / PI FAQ - Frequently Asked Questions</b></a>

  • JDBC sender adapter, ...Processing parameters, Update SQL statement

    in JDBC sender adapter, ...Processing parameters, there is an Update SQL statement field, can u tell me ...why this is required,,,,,and in one of the example scenario...it was given as <TEST>..

    Sudheep,
    In the sender JDBC adapter you have the select query to select data from the database.
    Let us summer 2 cases,
    1. You have <test> in  the UPDATE . In this case, during every polling interval the JDBC adapter will end up selecting the same data from the Database. This would not be needed in most f the cases. Why would you want to select the same data over an over again?
    2. If you have an update Statement in the Update field you can make sure that the data selected in the selected statement is updated so that the same rows are not selected again.
    Take a look at this blog,
    /people/yining.mao/blog/2006/09/13/tips-and-tutorial-for-sender-jdbc-adapter
    Regards
    Bhavesh

  • File Adapter-Processing Parameters

    can one tell me the difference between and when to use the following processing parameters
    poll interval(secs)
    poll interval(msecs)
    Retry Interval(Secs)
    Advanced Mode & Msecs to wait before modification

    Hi,
    from help.sap.com
    http://help.sap.com/saphelp_nw04/helpdata/en/e3/94007075cae04f930cc4c034e411e1/content.htm
    <b>Poll Interval (secs)</b>
    Number of seconds that the adapter must wait if no files are found for processing.
    <b>Poll Interval (msecs)</b>
    Additional waiting time in milliseconds.
    If Poll Interval (secs) is set to null, processing times will be short and close to real time.
    If Poll Interval (secs) and Poll Interval (msecs) are set to null, the adapter is only called once.
    <b>Retry Interval (secs)</b>
    Specify the number of seconds that the adapter is to wait before a file processed with errors is processed again.
    If the value is set to null, then the adapter is canceled if an error occurs, even if a value greater than null is specified for Poll Interval (secs).
    Regards,
    michal

  • Integration Directory: Archiving in the Processing Parameters

    Is it possible to archive to multiple folders in FTP via XI?
    Looks like XI will only let you archive into one folder after you've renamed it with a timestamp in the processing parameters.
    We are loooking at a way to rename the folders (by store number and time stamp) and archive these files into multiple archive folders.
    Is this at all possible in XI?
                            Thank-You.

    Hi,
    Using OS command and by executing the shell script you can acheive this,
    btw, are you talking of archiving these files for BackUp strategy..If so, i suggest, to use some of the standard mechanism to archive these files. Not just moving the files from one directory to another.
    If the requirement to just move these files, then you can plan for batch job/shells cript etc
    Rgds,
    Moorthy

  • Defining index in Dynamic parallel processing of workflow

    Hi all,
    I am using dynamic parallel processing feature in workflow for a particular multi-line element. But I am not able to define the index in that particular task.
    Consider that i have a multi-line element "Material". For this element, I need to loop that task for that n number of records. so i am using dynamic parallel processing. Now for each workitem generated, i need to show that particular material in the workitem. I remember that we need to use index, but i couldn't recollect how it is defined.
    Could anyone help me in this regard?
    Thanks in advance

    Nikhil,
    When you use dynamic parallel processing the index is available in <b>_Wf_ParForEach_Index</b>. A reference for the line of the multi line element is automatically generated for each work item created. You can see this in the Binding Editor for the step. In your case this will be "Material()". When you drag this element to the WF to Step binding window, it will be resolved as "&Material[&_Wf_ParForEach_Index&]&. Therefore you can get the material for each WI by defining "Material" in your task container (not as multiline) and doing the appropriate binding. If you in fact need the Index in your method, you can define a container element your task with reference to Type SWC_INDEX and bind to ]_Wf_ParForEach_Index.
    Cheers,
    Ramki Maley.
    Please reward points if the answer is helpful.
    For info on awarding points click on this link: https://www.sdn.sap.com/sdn/index.sdn?page=crp_help.htm

  • Generate report dynamically based on parameters

    I have a Report with 30-35 items and these items are divided into sets of
    RMA, WIP,Inventory, finance ....
    now i need to display the report dynamically based on parameters
    say, for example if RMA, WIP, Inventory, finance are YES,NO,YES, NO
    then the report should display only RMA , Inventory....
    any ideas/suggestions would appreciated......
    Thanks,
    -VK

    Thanks for the Reply Sabine, let me put my question this way,
    i have to display the report based on the selection criteria(parameters)
    i have a generalized view which will display all the items....but the client needs them in a fashion where he chooses them as a groups since, the list is so big and he wouldn't be needing them all at once.
    here is what i'm thinking for the moment since, discoverer cannot hide the columns based on runtime parameters ....correct me if i'm wrong (as per my knowledge...it cannot ) i have decided going with 16 worksheets 4 groups of items say,(RMA, WIP, INV, FINANCE..)
    and now based on the flags what the end user chosses i may have to display the appropriate worksheet ....is this solution possible...if so do i have to subqueries...??..or is there any better ideas/suggestion....
    Regards,
    VK

  • Problem in Dynamic Parallel processing using Blocks

    Hi All,
    My requirement is to have parallel approvals so I am trying to use the dynamic parallel processing through Blocks. I cant use Forks since the agents are being determined at runtime.
    I am using the ParForEach block. I am sending the &agents& as a multiline container in 'Parallel Processing' tab. I have user decision in the block. Right now i am hardcoding 2 agents in the 'agents' multiline element. It is working fine..but i am getting 2 instances of the block.I understand that is because I am sending &AGENTS& in the parallel processing tab.. I just need one instance of the block going to all the users in the &AGENTS& multiline element.
    Please let me  know how to achieve the same. I have already searched the forum but i couldnt find anything that suits my req.
    Pls help!
    Regards,
    Soumya

    Yes that's true when ever you try to use  ParForEach block then for each value entry in the table a separate workitem ID is created, i.e. a separate instance is created that paralle processing is not possible like that
    Instead of that what you can do is create a fork with 3 branches and define a End Condition such that until all 3 branches are executed .
    Before to the fork step determine all the agents and store them in a internal table , you can access the one internal table entry by using the index value check this [wiki|https://www.sdn.sap.com/irj/scn/wiki?path=/display/abap/accessingSingleEntryfromMulti-line+Element] to access single entry from a internal table.
    For each task in the fork assgin a agent
    So, as we have defined the condition that until all the three branches are executed you don't want to come out of the fork step so, it will wait until all the stpes are completed.

  • Dynamic parallel processing using a multiline container element

    Hi All ,
      I just wanted to how things work when we use "Dynamic parallel processing" for a decision step . I came across a situation wherein a Rule gets the approving user(s) and the work item should be sent to all those users . After getting an approval from all the users , the workflow should proceed or else it should terminate .
       I was just wondering whether "Dynamic parallel processing" will do this job or not . I had also thought of using forks but as the number of approvers are  decided at runtime , i dont think it is possible .
       Any inputs ?
      Edit : We are working on CRM 5.0
    Thanks ,
    Shounak M.
    Message was edited by: Shounak  M

    Hi Shounak,
    Just do as Mike says:
    use the multiline element for a subflow.
    The subflow consists of your user decision, if someone rejects it, remember it (could be done by updating a small table using a method, or use an event, or what mike suggested, updating appending a table )
    In the top flow, after the multiline element step determine if someone rejected it (wait for event, or reading the table).
    Kind regards, Rob Dielemans
    Message was edited by: Rob Dielemans

  • Dynamic parallel processing of the same object using asynchronous method

    Hi,
    Please can anyone help me?
    I have to send the same DMS document to several agents for parallel processing. The number of agents is not known until runtime. Each of them should process the document and at least change the status of it. In next step I check if he has changed it.
    I use dynamic parallel processing of subworkflows. Key task of this subworkflow uses standard method of object DRAW - DOCUMENT.EDIT  (standard transaction CV02N) which is asynchronous. The task is finished by event DOCUMENT.CHANGED. 
    During the parallel processing the appropriate number of workitems is generated. However, when the agent who processes the document as first completes his workitem the event DOCUMENT.CHANGED is generated and all parallel workitems are completed, even those of other agents that were not processed yet.
    Any help would be appreciated.
    Thanks.
    Eva Vahalova

    Hi all,
    The process is used to approve incoming invoices. Each scanned invoice is attached to a DMS document and than sent to one or several agents in parallel. People from several departments can approve the same invoice for instance energy or mobile phone costs. We have no HR module fully implemented. Each agent may write some remarks and has to sets the document status to either approved or rejected. This status is temporary therefore the others see the original status for approving.
    The process of incoming invoices was implemented by SAP consultants in 2003 on 4.6B and now runs on our 4.7 system.  Now new company was established running on a new SAP system ECC 6.0 and our accountant department and some agents will deal with invoices in both systems. Therefore, the process should appear the same or at least very similar. The majority of the old process was realized by programming while I would like to use workflow features that are available now and reduce the programming part.
    As I see, I will have to choose one of the solutions that Arghadip suggested.
    I wonder if there is a possibility to use asynchronous method and control the end of each work item by means of u201CComplete Work Itemu201D or u201CComplete executionu201D Conditions. I have never used them and I do not know how they work and what condition to use. Maybe program exit might be used as well. While controlling the agents I think I will have to do some programming anyway because the work item can be finished by a substitute too.
    Thanks for your help.
    Eva

  • How to add XSLT processing tag?

    Hello,
    I am using the following codes to generate xml with xslt processing tags.
    However it does not working. That is, it does not add the xslt processing
    tag into xml outputs. I am using 1.6.x. I must be doing something wrong?
    Document doc = db.newDocument();
    Element root = doc.createElement("myroot");
    doc.appendChild(root);
    ProcessingInstruction pi =
         doc.createProcessingInstruction("xml-stylesheet",
         "type =\"text/xsl\" href=\""+xslt+"\"");
    doc.insertBefore(pi, root);
    StringWriter sw = new StringWriter();
    PrintWriter pw = new PrintWriter(sw);
    OutputFormat format = new OutputFormat(doc);
    XMLSerializer serial = new XMLSerializer(pw, format);
    serial.asDOMSerializer();
    serial.serialize(doc.getDocumentElement());
    pw.flush();

    Instead of adding processing instruction directly inside DOM object, add the processing instruction while serializing XML like this
    Document doc = db.newDocument();
    Element root = doc.createElement("myroot");
    doc.appendChild(root);
    //ProcessingInstruction pi = doc.createProcessingInstruction("xml-stylesheet",
    //     "type =\"text/xsl\" href=\""+xslt+"\"");
    //doc.insertBefore(pi, root);
    StringWriter sw = new StringWriter();
    PrintWriter pw = new PrintWriter(sw);
    OutputFormat format = new OutputFormat(doc);
    XMLSerializer serial = new XMLSerializer(pw, format);
    serial.asContentHandler().processingInstruction("xml-stylesheet","type=\"text/xsl\" href=\"users.xsl\"");
    serial.asDOMSerializer();
    serial.serialize(doc.getDocumentElement());
    pw.flush();or use an alternate serializer like this one (coming from [http://exampledepot.com/]
        // This method writes a DOM document to a file
        public static void writeXmlFile(Document doc, String filename) {
            try {
                // Prepare the DOM document for writing
                Source source = new DOMSource(doc);
                // Prepare the output file
    //            File file = new File(filename);
                  StringWriter sw = new StringWriter();
                Result result = new StreamResult(System.out);
                // Write the DOM document to the file
                Transformer xformer = TransformerFactory.newInstance().newTransformer();
                xformer.transform(source, result);
            } catch (TransformerConfigurationException e) {
            } catch (TransformerException e) {
        }  

Maybe you are looking for

  • What is the easiest way to create and share photo/video gallery or slide show with family via web?

    I am brand new to Lightroom (converted from Aperture) and made the conversation mainly because I thought that Adobe would bring many more options and because Apple has discontinued development of Aperture. Part of the reason I am asking this question

  • Major problem, need help

    okay so my dad completely reset our power mac G5 last week to reinstall the system to recover some lost programs. He put all of our stuff on a seagate backup harddrive and reset the system. Today i went on the computer form the first time since he di

  • I would like to upgrade my plan to Complete - For CS Customers $29.99

    I am trying to upgrade my plan and they have directed me here to have it done at the special price

  • Excel and analytics on Mac

    Hi. I think Excel now has gotten a little better with the analysis pack (http://support.microsoft.com/kb/914208) and "Solver" from that external organization. My question, which seems not to be mentioned anywhere: are the formulas exactly the same on

  • RFC Error Received while opening queries from BEx Analiser

    Hi Friends, We have recently upgraded BW 3.5 to BI 7.0 and installed SAP GUI 710. When we try to open queries using old 3.5 BEx Analyser, we are getting error ' RFC Error Received '. strange thing is, it is not happening with all the users. For some