User Defined Function (UDF) help required. Pls advice urgent.

Hi ,
CRM -- XI (UDF) -- Socket Connection
Now in User Defined Function (UDF) of Message Mapping I will open Socket Connection.
Send CRM XML request to socket and get XML response from Socket and then map to some system.
Can I write Java Class code in User Defined Function (UDF)  of Message Mapping instead of Java Mapping in blog below?
/people/saravanakumar.kuppusamy2/blog/2005/12/15/socket-integration-with-xi
Regards

Henry,
Do you have a structure for your response...if you do then you can do extended reciever det with sync/async..shouldent matter, i just tried it and i dont get any error.
in your reciever determination..Check the box for standard rec det then add your first condition..of the value of a field to true..then send to A..
then you select add condition..and add for second reciever..that should be it, you shouldent need a bpm for such a simple scenario..it definetly is an overkill.
Regards
Ravi Raman

Similar Messages

  • How do you create a user defined functions  UDF and passing a value like a ID to GEt a Value.

    How do you create a user defined functions UDF and passing a
    value like a ID to GEt a Value.
    using a query.
    are there example.
    Thanks

    tons of examples at cflib.org - good place to start, even
    though many
    udfs there are a bit outdated in their code...
    Azadi Saryev
    Sabai-dee.com
    http://www.sabai-dee.com

  • User-defined function(java)

    hi expects,
    how to write user defined finction in javain meesage mapping.please help me.

    Hi Rohit,
    In order to create UDFs, you need to have a basic idea about using Core Java. Also, based on the kind of functonality of the code, you will need to know if you require any extra jar files.
    To create a UDF, all you need to do is click on LHS icon in the graphical mapping editor. Also, keep in min that the input and otput of a udf is always in strings.
    To test your functions, you can either use the test tab present in the mapping editor or you can even use the following editor(blog by Sravya):-
    /people/sravya.talanki2/blog/2006/07/24/integrating-java-editor-in-xi-integration-stack
    I think info will be enough for you to start off with creating and using UDFs:)
    This link for User Defined Functions,
    http://help.sap.com/saphelp_nw04/helpdata/en/d9/718e40496f6f1de10000000a1550b0/content.htm
    Writing use defrined functions in XI is quite simple. Create a simple UDF, give the import parameters and then just go ahead with the logic coding and then return the output from the UDF.
    Just remember that all inputs and outputs to an UDF are always Strings.
    Cheers...
    Vasu
    <b>** REward Points if found useful **</b>

  • How to use StreamTransformationException in user-defined function?

    Hi,
    I'm doing a DBLookup (using Java pgm in one of my Imported Java archives) for populating one of the fields in message mapping. If the DB connection fails, I want to terminate the mapping by throwing a StreamTransformationException from within a user-defined function.
    I require urgent help in this regard.
    Thanks in advance.
    Regards,
    Sridhar Rajan N

    Hi,
    I had the same problem. I failed to find the way how to throw a StreamTransformationException in my user-defined function. But I used another exception: NullPointerException. Yes, I know, this is not an elegant solution...
    Best regards,
    Andrzej Filusz

  • Regarding sqlserver user defined functions

    Hi,
      How to write user defined functions dynamically?
    Please help me in any situation

    Hi Bellam,
    You post same question 2 times. Please avoid this practice on Forum, I 
    have merged the same thread  into this thread.
    As other post, dynamic SQL is not allowed in user defined functions (UDF), however, you can execute dynamic SQL store procedure with parameter. A user-defined function takes zero or more input parameters and returns either a scalar value or a table. There
     is different between user-defined stored procedures and
    user-defined function. User-defined functions do not support output parameters.
    For more information, you can review the article about User-Defined Functions(UDF).
    http://technet.microsoft.com/en-us/library/ms191007.aspx
    Regards,
    Sofiya Li
    Sofiya Li
    TechNet Community Support

  • UDF(user defined function) for standard date transformate function,

    Hi All,
    Hope you are doing good !!!
    I have a requirement where i need to write an UDF(user defined function). Please help me in writing the code for below logic-
    I am getting my Input as 111213 where 11 denotes HH 12 denotes mm 13 denotes ss. I need ti insert : between hh:mm:ss
    Please help me achieving a code for below logic
    I have used standard date transformate function, there i am getting spaces as separator in my input resulting an errors i am sending without spaces.
    Regards,
    Vijay Kumar.

    Hello,
    I am getting my Input as 111213 where 11 denotes HH 12 denotes mm 13 denotes ss. I need ti insert : between hh:mm:ss
    Please help me achieving a code for below logic
    I have used standard date transformate function, there i am getting spaces as separator in my input resulting an errors i am sending without spaces.
    What do you mean by spaces? Can you try the mapping below?
    inputDate -> replaceString -> dateTrans(inputDateFormat: HHmmss outputDateFormat: HH:mm:ss) -> target
    Constant: -> /
    Constant:-> /
    Hope this helps,
    Mark

  • Need help with user defined function

    Hello SDN,
    I need some help with a user-defined function. My source message contains multiple
    generic records (1000 char string), and my target message is 1 header record,
    then multiple generic records.  See description of source and target messages below:
    Source:
      GenericRecordTable 1..unbounded
        Row (1000 char string)
    Target:
      Field1 (char5)
      Field2 (char5)
      Field3 (char5)
      IT_Data
        GenericRecordTable 1..unbounded
          Row (1000 char string)
    Basically, what I need to do in my user defined funtion is to map the first record
    in my source record to the 3 header fields, then map all of the rest of the records
    (starting from line 2) into the GenericRecordTable.
    Can someone please help me with the code for the user defined function(s) for this
    mapping?
    Thank you.

    hi,
    Activities
    1. To create a new user-defined function, in the data-flow editor, choose Create New Function (This
    graphic is explained in the accompanying text), which is located on the lower left-hand side of the
    screen. In the menu, choose Simple Function or Advanced Function.
    2. In the window that appears, specify the attributes of the new function:
    Name
    Technical name of the function. The name is displayed in the function chooser and on the data-flow
    object.
    Description
    Description of how the function is used.
    Cache
    Function type (see above)
    Argument Count
    In this table, you specify the number of input values the function can process, and name them. All
    functions are of type String.
    3. In the window that appears, you can create Java source code:
    a. You can import Java packages to your methods from the Imports input field, by specifying them
    separated by a comma or semi-colon:
    You do not need to import the packages java.lang., java.util., java.io., and java.lang.reflect. since
    all message mappings require these packages and therefore import them. You should be able to
    access standard JDK and J2EE packages of the SAP Web Application Server by simply specifying the
    package under Import. In other words, you do not have to import it as an archive into the Integration
    Repository. You can also access classes of the SAP XML Toolkit, the SAP Java Connector, and the
    SAP Logging Service (see also: Runtime Environment (Java-Mappings)).
    In addition to the standard packages, you can also specify Java packages that you have imported as
    archives and that are located in the same, or in an underlying software component version as the
    message mapping.
    b. Create your Java source text in the editor window or copy source text from another editor.
    4. Confirm with Save and Close.
    5. User-defined functions are limited to the message mapping in which you created the function. To
    save the new function, save the message mapping.
    6. To test the function, use the test environment.
    The new function is now visible in the User-Defined function category. When you select this category,
    a corresponding button is displayed in the function chooser pushbutton bar. To edit, delete, or add the
    function to the data-flow editor, choose the arrow next to the button and select from the list box
    displayed.
    http://help.sap.com/saphelp_nw04/helpdata/en/d9/718e40496f6f1de10000000a1550b0/content.htm
    http://java.sun.com/j2se/1.5.0/docs/api/
    /people/krishna.moorthyp/blog/2006/07/29/documentation-html-editor-in-xi
    /people/sap.user72/blog/2006/02/06/xi-mapping-tool-exports
    http://help.sap.com/saphelp_nw04/helpdata/en/43/c4cdfc334824478090739c04c4a249/content.htm
    UDF -
    http://help.sap.com/saphelp_nw04/helpdata/en/22/e127f28b572243b4324879c6bf05a0/content.htm
    Regards

  • Idoc to cXMLmapping..user defined function help

    hello Everybody,
                              I am new to XI and I am working on a new mapping.  In a nutshell, the requirement is to concat the TDLine of segment E1EDPT2 and map the data to comments of the cXML. The segment E1EDPT2 is segment in E1EDP01( Purchase Order line item segment) This the data that is coming from the vendor text of the SRM system.  This needs to repeat for each line item in the Purchase Order.  I have created a user defined function which concats the TD lines but I am not able to differenciate the tD line for other line items.  Please help.  I would appreciate it if anyone could share the User Defined function which suits my needs.
    Thanks!
    <E1EDP01>  (PO lIne Item 1)
         <E1EDPT1 SEGMENT="1">
              <TDID>F01</TDID>
              <TSSPRAS>E</TSSPRAS>
              <TSSPRAS_ISO>EN</TSSPRAS_ISO>
           <E1EDPT2 SEGMENT="1">
                 <TDLINE>XI mapping test - Newline1</TDLINE>
                 <TDFORMAT>*</TDFORMAT>
           </E1EDPT2>
           <E1EDPT2 SEGMENT="1">
                 <TDLINE>Line1- text2 end</TDLINE>
                 <TDFORMAT>*</TDFORMAT>
           </E1EDPT2>
           <E1EDPT2 SEGMENT="1">
                 <TDLINE>Line1 - text3</TDLINE>
                <TDFORMAT>*</TDFORMAT>
           </E1EDPT2>
         </E1EDPT1>
    </E1EDP01>
    <E1EDP01>  ( PO lien item 2)   
         <E1EDPT1 SEGMENT="1">
              <TDID>F01</TDID>
              <TSSPRAS>E</TSSPRAS>
              <TSSPRAS_ISO>EN</TSSPRAS_ISO>
         <E1EDPT2 SEGMENT="1">
               <TDLINE>XI mapping test - line2</TDLINE>
               <TDFORMAT>*</TDFORMAT>
         </E1EDPT2>
      </E1EDPT1>
    </E1EDP01>

    Hi,
    Please create context UDF which will concatenate all TDLine. Afterwards pass to this function TDLine with changed context to E1EDPT1.
    In this function you need to concat full input array.
    Regards,
    Wojciech

  • Help in Mapping: User defined function

    Hi All, I need your help in doing the following mapping:
    The source contains the below fields:
    Source_MT -- Under this          1...1
       LineItem                                 1...Unbounded
         CompanyCode          1..1
         Amount               1..1
       SubTotal                               1...Unbounded
         CompanyCode          1...1
         Amount               1...1
    And the Target strunture should be:
    Target_MT -- Under this
       Target                               1...unbounded
         CompanyCode          1...1
         AmountMatched          1...1
    There will be multiple line items in the source for each compony code which I need to loop through and add the amounts. For a company code, The sum of the amounts in the line items should match with the amount in the Subtotal/Amount.
    For each company code, a target should be created with the result whther the amounts were matched or not.
    Below is the data example:
    Source:
    Line Item :
         CompanyCode          Amount
         ABC               5
         ABC               5
         XYZ               10
         ABC               7     
         XYZ               6
    Sub Total :
         CompanyCode          Amount
         ABC               17
         XYZ               5
    Target should be:
    CompanyCOde          Amount
    ABC               Matched
    XYZ               Not Matched
    Hope I am clear with my requirement. Please let me know if you need more clarity.
    I was able to create mapping, if the line items contains single company code. Need help with multiple company codes.
    Any help would be appreciated.
    Edited by: GP on Jan 29, 2008 5:55 PM
    Edited by: GP on Jan 29, 2008 5:57 PM

    I am still working on the same map (please refer above) for which you gave th3e solution. The solution almost worked.
    I need to validate the line items with the subtotals. If the validation fails, I should throw an custom exception. If the validation is successful, then do nothing (do not create the target element).
    Hope I am clear. Please let me know if I am not clear.
    LineItem1: 10
    LineItem2: 20
    SubTotal1: 30
    LineItem3: 5
    LineItem4: 5
    SubTotal2: 15
    In the above example, eventhough LineItem1 and LineItem2 sum up to Subtotal1,  LineItem3 and LineItem4 doesn't sum up to SubTotal2. So it should throw an exception because second validation failed.
    Also, it should not create target element because first validation was successful.
    I used the logic int he below link :
    [http://www.flickr.com/photo_zoom.gne?id=2229287904&size=o]
    In the "else" part of "If else" statement, I have a user defined function which throws exception.
    If the output is "true", I am avoiding creating the target element using "Createif" statement.
    But strangely, when the vaildation of first set fails (LineItem1, LineItem2 and Subtotal1), then it is throwing the exception.
    But when the validation of second set fails, then it is not throwing the exception.
    My current map looks like below:
    [http://www.flickr.com/photos/23389577@N02/2234471441/sizes/l/]
    Edited by: GP on Feb 1, 2008 6:46 PM
    Edited by: GP on Feb 1, 2008 6:50 PM
    Edited by: GP on Feb 1, 2008 7:01 PM

  • Urgent Help Needed - Associating Statistics with User-Defined Functions

    Hello,
    We have an appication uses cost-based optimizer and uses a lot of TO_DATE and SYSDATE calls in FROM and WHERE clauses. For certain reasons, every call to TO_DATE and SYSDATE has been replaced by MY_TO_DATE and MY_SYSDATE respectively (which in turn call built-in functions). However, cost based optimizer is behaving strangely, which is understanble, based on the lack of user-defined functions statistics. I am under the impression that I should use something like:
    ASSOCIATE STATISTICS WITH FUNCTIONS my_to_date DEFAULT SELECTIVITY ?;
    ASSOCIATE STATISTICS WITH FUNCTIONS my_to_date COST (?,?,?);
    ASSOCIATE STATISTICS WITH FUNCTIONS my_sysdate DEFAULT SELECTIVITY ?;
    ASSOCIATE STATISTICS WITH FUNCTIONS my_sysdate COST (?,?,?);
    but what should the values (?) be?. I guess I want to replicate TO_DATE and SYSDATE values, but how would I find out what they are? Thanks in advance...
    P.S. I am also looking for workarounds (I cannot create a synonym for TO_DATE right?), so any help is welcome!!!

    Hi emmalou69 ,
    You told your actual parameter is
    5, 5, 7.3 and 'z'
    so change your method like
    public static int test(int x, int y, double d, char ch)
    because 5 - int; 7.3- float or double; z is char.
    your method returns
    public static int.
    so you should return only int variable. but in your code you mentioned double. it's not correct.
    The original code should look like
    public class rubbish
         public static void main(String args[]){
              rubbish f = new rubbish();
              f.test(5, 5, 7.3 ,'z');
         public static int test(int x, int y, double d, char ch)
              int value;
              x = 5;
              y = 5;
              d= 7.3;
              ch = 'z';
              value =((int) d + x + y + ch);
              System.out.println( x + ch + d + y);
              return value;
    }//here int value of z is 122.
    and int(7.3) is 7
    so 7+5+5+122 = 139.3
    but value =((int) d + x + y + ch); returns 139. because you convert double to int that is 7.3 to 7
    If it is useful, rate me duke dollars,
    Thanks

  • User defined function for getting last string in the line

    Hi Experts,
    I am not java expert, can anyone give me user defined function for getting last string in the line.
    for example if the source field is "NEW ARBOUR SQUARE"  i want to pass to target field only last string that is "SQUARE"
    please help me out of this.
    Kind Regards.
    Praveen.

    You don't even need a UDF for this. In the graphical editor look for the standard functions and once you do a scroll over on 'text functions; you will find what you are looking for.
    Just a piece of advice, try keeping UDF's to minimum unless really required or it is complicated without it.
    regards

  • User Defined Function (Part 2)

    Hi,
    István Korös has finally solved my problem on User Defined Function.
    See
    My objective was to write a simple UDF to represent the following formula which Gordon Du gave me:
    (DATEADD (s, -1, 
             DATEADD (mm, (DATEDIFF (m,0,@refdtzz ) + @mthnumber),  0)))
    However, the solution proposed by István, although it works perfectly, leaves me scratching my head. Let's see why?
    The only difference between my solution and that proposed by István is that István enclosed the UDF name between .
    I wonder how this can make the vital difference between a (simple query!) that works well and one that gets blocked.
    I tried several combinations of and am in for a few surprises, listed below. Can anybody explain what's going on?
    Solution proposed by István:
    CREATE FUNCTION [dbo].[udf_EndOfMonth]
    and executed as:
    select  [dbo].udf_EndOfMonth (@refdt1 , 1)
    Remarks: works perfectly
    If I execute the UDF with exaclly the same name as in CREATE, it does not work
    CREATE FUNCTION [dbo].[udf_EndOfMonth]
    and executed as:
    select  [dbo].[udf_EndOfMonth] (@refdt1 , 1)
    Error Msg: Must specify table to select from
    If I don't put the , the function is created, but the execution of the calling query returns error
    CREATE FUNCTION dbo.udf_EndOfMonth
    Remarks : Creation OK
    and executed as:
    select  dbo.udf_EndOfMonth (@refdt1 , 1)
    Error Msg: Must specify table to select from
    It seems that the only combination that works is that provided by István.
    This is surely a simple UDF.
    I don't know what to do if I attack a more complicated UDF.
    Grateful if anybody could help light my way.
    Thanks
    Leon Lai

    Hi Leon,
    As István has already pointed out, there is no documentation for those small differences to make the SQL work or not. He must be tested quite a few times to find the actual working code. This question can only be answered by the developer who made this part for B1.
    Thanks,
    Gordon

  • User-Defined Function and Context Manipulation

    Hi Mapping Gurus, I need your help.
    I have a user-defined function and one of my input parameter (c) is in a loop (EDI segment).  So one, if I execute my function I get:
    Exception:[java.lang.ArrayIndexOutOfBoundsException: 0]
    If I change the context or use the remove context node function it’s working but it’s always taking the first row in consideration since I'm using c[0] .  Here is the logic:
    String WHERE_CLAUSE = "A"" = ""'"b[0]"'"" and B = ""'"c[0]"'";
    So since c is an array [], I have tried different logic to get to the right row.
    1- I tried using another parameter (e) to pass a counter or an index to my function.  So each time it's looping, it's passing a new value to the function but I’m still getting the first row and I’m not to sure why?
    int G = Integer.parseInt(e[0]);  // e[] = My counter field
    String WHERE_CLAUSE = "A"" = ""'"b[0]"'"" and B = ""'"c[G]"'";
    2- I tried using a parameter stored in the container:
    String Num;
    Num = (String)getParameter(“counter”);
    if (Num == null)  G = 0;
    else
    G = Integer.parseInt(Num);
    G = G + 1;
    String WHERE_CLAUSE = "A"" = ""'"b[0]"'"" and B = ""'"c[G]"'";
    Num = "" + G;
    setParameter(e[0], Num);
    and I’m still getting the first one, look like it’s using a different container each time it’s looping so the Value is always the same?
    4- I created a new user-defined function with the container logic, then it’s working but I’m back to the same problem in my main function, it’s only looking at e[0] for my counter all the time.
    5- I tried using the Seeburger Java Variables and guess what in the main fonction, as new UDF,... and guess what, same result!
    So anybody out there that was able to get UDF's working into a multiple context scenario?
    Am I missing something?
    I will reward points and beer for any help!

    This is one of the text with passing a counter to the function to try to go to the right row in the array since I'm doing a remove context and I'm getting all the d_234's:
    public void ReadTable(String[] a,String[] b,String[] c,String[] d,String[] e,ResultList result,Container container){
    int G = Integer.parseInt(e[0]); // My counter
    String var;
    String DBTABLE = a[0];
    String lookUpField = d[0];
    String WHERE_CLAUSE = "A"" = ""'"b[0]"'"" and B = ""'"c[G]"'";
    Now this one was with the internal container logic:
    int G;
    String DBTABLE = a[0];
    String lookUpField = d[0];
    String Num;
    Num = (String)getParameter(e[0]);
    if (Num == null)  G = 0;
    else
    G = Integer.parseInt(Num);
    G = G + 1;
    Num = "" + G;
    setParameter(e[0], Num);
    String WHERE_CLAUSE = "A"" = ""'"b[0]"'"" and B = ""'"c[G]"'";
    And now with the Seeburger Variables:
    int G;
    try {
    VariableBean be=VariableFactory.getVariableInstance("");
    G = Integer.parseInt(String.valueOf(be.getStringVariable("yves")));
    } catch (Exception f) {
    throw new RuntimeException(f);
    String DBTABLE = a[0];
    String lookUpField = d[0];
    String WHERE_CLAUSE = "A"" = ""'"b[0]"'"" and B = ""'"c[G]"'";
    try {
    G = G + 1;
    Num = "" + G;
    VariableBean be=VariableFactory.getVariableInstance("");
    be.setStringVariable("yves",Num);
    catch (Exception f) {
    throw new RuntimeException(f);
    All 3 logics were returning always the first row or a counter of 1 if the logic is in the main ReadTable function.

  • User Defined Function Missing In EF 6?

    I'm using Entity Framework 6 and I have imported several user-defined functions like the one shown below, but it doesn't
    appear when I try to select the function in intellisense and the model doesn't recognize this function as a method on the EF context.  How do I call this function in EF 6?
    <Function Name="getCycleDate" Aggregate="false" BuiltIn="false" NiladicFunction="false" IsComposable="true" ParameterTypeSemantics="AllowImplicitConversion" Schema="dbo" ReturnType="date" />
    MCSD .NET developer in Dallas, Texas

    Hello DallasSteve,
    >> I have imported several user-defined functions like the one shown below,
    What is your UDF? If it is a TVF, starting from EF5, it is supported already:
    https://msdn.microsoft.com/en-us/data/hh859577.aspx
    However, it is a scalar function, unfortunately, as far as I know, even entity framework 6 doesn't suport generating calls for scalar functions by default. The workaround is to write a custom method like this inside your DbContext class, for example, there
    is scalar function as:
    CREATE FUNCTION [dbo].[Function20150410]
    @param1 int,
    @param2 int
    RETURNS INT
    AS
    BEGIN
    RETURN @param1 + @param2
    END
    When we imported it to the model, it would generate code in SSDL as:
    <Function Name="Function20150410" Aggregate="false" BuiltIn="false" NiladicFunction="false" IsComposable="true" ParameterTypeSemantics="AllowImplicitConversion" Schema="dbo" ReturnType="int">
    <Parameter Name="param1" Type="int" Mode="In" />
    <Parameter Name="param2" Type="int" Mode="In" />
    </Function>
    While, it will not generate a call method as a store produce, for a workaround, we could write a custom function as:
    [DbFunction("DFDBModel.Store", "Function20150410")]
    public ObjectResult<int> GetContentByIdAndCul(int id, int culture)
    var objectContext = ((IObjectContextAdapter)this).ObjectContext;
    var parameters = new List<ObjectParameter>();
    parameters.Add(new ObjectParameter("Id", id));
    parameters.Add(new ObjectParameter("Culture", culture));
    return objectContext.CreateQuery<int>("DFDBModel.Store.Function20150410(@Id, @Culture)", parameters.ToArray()).Execute(MergeOption.NoTracking);
    I suggest that you write this custom method a separate cs file since if we update the model, the original context call would be reset.
    Calling it as:
    using (DFDBEntities db=new DFDBEntities())
    var result = db.GetContentByIdAndCul(1, 1).FirstOrDefault();
    }s
    Regards.
    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click
    HERE to participate the survey.

  • User defined function error

    Hi All,
    I was trying to create user defined function for raising exception if any mapping error occur according to the blog 
    "Throwing Smart Exceptions in XI Graphical Mapping" by Alessandro Guarneri
    i have create the jar file and imported the classes but my udf is not able to resolve the method defined in the class.
    Please help me in how should i import the jar correctly?

    try putting the jar location explicitly in weblogic server's classpath i.e. add BEA_Home/user_projects/domains/domain_name/lib to wls classpath and restart server.

Maybe you are looking for

  • How to remove a java script pop up

    Hi, I imported a robohelp document from another company and i am catering it to my company's needs. The problem is they have popups which refer to .bmp and it is in java script. If i highlight the word which has the pop up and remove the popup and th

  • ICloud with excel/word

    Can you edit excel/word files in iCloud and open the documents with changes on another device?  When I open a document in Icloud i have to download it but when i make changes and save the original document apears the next time I open (no changes). 

  • Elements default format appear as blocks instead of inline text

    I am creating an EDD and I have some issues with the way FrameMaker breaks each element instead of leaving it inline. This wouldn't be a problem if I was allowed to format children instead of elements; then I could fix the problems I am having. Short

  • Mac mini and existing Airport wireless connections

    Hi. If i purchase the new mac mini duo processor...I can supposedly hook it up to my old iMac and run Tiger on it...correct? I am using Airport extreme to connect wirelessly to the iMac, the iBook and my Powerbook. Which Airport would I use then for

  • Could not display output in PDF format from a RDF file

    Hi all, I'm calling a report file (.RDF) from the browser using RWCGI.EXE, and specified the output in PDF format, but it always asking me to download the active-X for the PDF file generated by the report. I have Adobe Acrobat Reader installed on my