6 Replies Latest reply: Mar 31, 2011 2:29 PM by 852022 RSS

    ERROR Consuming external Web Services from JDE E1

    mónica
      Hello everybody,

      I am trying to consume external web services from JD Edwards Enterprise One. For that, I have followed "Consuming External Web Services Tutorial".
      I have followed all the steps successfully, but when the final test called from an interactive application to the business function that I had created in C get the following error messages in the log file:

      [WARN ] JDE - [RUNTIME] *ERROR CallObject@13d346d: CallObject.executeRequest(): Problem executing function [consumingWS] lib [CALLBSFN] GetProcAddress failed. Please see Enterprise Server log for details. Business function cannot be found user:JDE Env:DV900*

      [SEVERE] JDE - [RUNTIME] FormEngine.doEvent(): BSFN failed and need roll back!! | Form Name : P5500055_W5500055A com.jdedwards.runtime.base.SystemException: There was a problem with the sever while running the business function consumingWs.\nThe current transaction has been lost.\nPlease exit the application and restart it.\nButton clicked Line number 1\nP5500055_W5500055A
      com.jdedwards.runtime.base.SystemException: There was a problem with the sever while running the business function consumingWs.\nThe current transaction has been lost.\nPlease exit the application and restart it.\nButton clicked Line number 1\nP5500055_W5500055A
      at com.jdedwards.runtime.engine.form.FormEngine.doEvent(Unknown Source)
      at com.jdedwards.runtime.vtcomponent.form.VTForm.doEvent(Unknown Source)
      at com.jdedwards.runtime.engine.ButtonEngine.onClick(Unknown Source)
      at com.jdedwards.runtime.vtcomponent.VTButton.onClick(Unknown Source)
      at com.jdedwards.runtime.vtcomponent.VTButton.processVirtualEvent(Unknown Source)
      at com.jdedwards.runtime.virtual.OWVirtual.processVTEvent(Unknown Source)
      at com.jdedwards.runtime.virtual.OWVirtual.processEventLoop(Unknown Source)
      at com.jdedwards.runtime.virtual.OWVirtual.run(Unknown Source)
      at com.jdedwards.base.util.ThreadPool$WorkerThread.run(Unknown Source)

      I have tested:

      1) Incorrect OCM for BSFNs.
      Mapped to development Enterprise Server, so it was failing to find the BSFN.

      2) Increase heap space for Java.

      3) Business Function Location (C/S): "Both Client & Server Function"

      4) Link the Business function with its parent DLL (CALLBSFN.dll)
      I'm not sure I'd done well...

      5) Update Package
      From Buildlog.txt I can see the following error:

      Copying \\ORACLE-JDE\E900\DV900\package\DV900FB\lib32\sCALLBSF.lib to \\ORACLE-JDE\E900\DV900\package\DVU100427\lib32\sCALLBSF.lib
      Copying \\ORACLE-JDE\E900\DV900\package\DV900FB\work\jdertdll.c to \\ORACLE-JDE\E900\DV900\package\DVU100427\work\jdertdll.c
      Generating Makefile: E:\e900\DV900\obj\CALLBSFN.mak

      B5500055 : Not checked into pathcode, excluded from the build
      .Makefile generated.

      Building business functions.

      ************CALLBSFN************

      jdertdll.c
      Creating library \\ORACLE-JDE\E900\DV900\package\DVU100427\lib32\CALLBSFN.lib and object \\ORACLE-JDE\E900\DV900\package\DVU100427\lib32\CALLBSFN.exp
      CALLBSFN.exp : error LNK2001: unresolved external symbol _consumingWS@12
      \\ORACLE-JDE\E900\DV900\package\DVU100427\bin32\CALLBSFN.dll : warning LNK4088: image being generated due to /FORCE option; image may not run

      To not build the business function is not possible the package deployment for the server becomes aware of the presence of this business function...


      But I have not managed to solve the problem, do you have any idea?

      Thank you and regards.
        • 1. Re: ERROR Consuming external Web Services from JDE E1
          mónica
          Hello again,

          I have modied OCM record with a correct BSSV (the name and the port number were wrong).

          And other thing that I have tested is change the parent DLL with a new DLL created by me (Object Name: CALLWS.dll, Product Code: 0, Product System Code:0) and the error is:
          *ERROR CallObject@25b780: CallObject.executeRequest(): Problem executing function [invocarWS] lib [CALLWS] LoadLib failed.Please see Enterprise Server log for details. Library in which business funtion resides cannot be loaded user:JDE Env:DV900*
          [SEVERE] JDE - [RUNTIME] FormEngine.doEvent(): BSFN failed and need roll back!! | Form Name : P5500055_W5500055A com.jdedwards.runtime.base.SystemException: There was a problem with the sever while running the business function invocarWS.\nThe current transaction has been lost.\nPlease exit the application and restart it.\nButton clicked Line number 1\nP5500055_W5500055A
          com.jdedwards.runtime.base.SystemException: There was a problem with the sever while running the business function invocarWS.\nThe current transaction has been lost.\nPlease exit the application and restart it.\nButton clicked Line number 1\nP5500055_W5500055A
               at com.jdedwards.runtime.engine.form.FormEngine.doEvent(Unknown Source)
               at com.jdedwards.runtime.vtcomponent.form.VTForm.doEvent(Unknown Source)
               at com.jdedwards.runtime.engine.ButtonEngine.onClick(Unknown Source)
               at com.jdedwards.runtime.vtcomponent.VTButton.onClick(Unknown Source)
               at com.jdedwards.runtime.vtcomponent.VTButton.processVirtualEvent(Unknown Source)
               at com.jdedwards.runtime.virtual.OWVirtual.processVTEvent(Unknown Source)
               at com.jdedwards.runtime.virtual.OWVirtual.processEventLoop(Unknown Source)
               at com.jdedwards.runtime.virtual.OWVirtual.run(Unknown Source)
               at com.jdedwards.base.util.ThreadPool$WorkerThread.run(Unknown Source)

          It seems like it is not possible to find the CALLWS dll... Althought it was built and compiled without errors and warnings...


          I would like to debug the Business Function in C from Microsoft Visual Studio 2005, but I can't, because breakpoints are disable.
          I have followed the following manual:
          E1: BSFN: Debugging Business Functions Using Visual Studio .NET 2003, 2005 and 2008 (I have founded it in Oracle Support (Metalinki)).
          And here they say:
          "It is a normal feature of visual studio 2003/2005 to disable break point at the start of a debug session and display a warning saying no symbol is loaded. Break point will only be activated on demand when the code to debug is loaded in to the runtime memory".
          I think is necessary add the referency with parent DLL (in my case, CALLWS.dll) but I don't know how can I do it. I have tested to insert in Business Function's source code the following line:
          "#pragma comment(lib,"CALLWS.dll")" to force to include it, but when it was built:
          ************CALLWS************

          B5500055.c
          Replacing B5500055.obj
          jdertdll.c
          Creating library E:\e900\DV900\lib32\CALLWS.lib and object E:\e900\DV900\lib32\CALLWS.exp
          LINK : fatal error LNK1104: cannot open file 'CALLWS.dll'
          Microsoft (R) Manifest Tool version 5.2.3790.2075
          Copyright (c) Microsoft Corporation 2005.
          All rights reserved.

          mt.exe : general error c10100b1: Failed to load file "E:\e900\DV900\bin32\CALLWS.dll". The system cannot find the file specified.

          Adjusting DLL load addresses . . .


          ************Build Finished************


          I don't understand nothing, because the path is totally right.



          Any help is appreciated!

          Thank you and regards.

          Edited by: user12085357 on 29-abr-2010 2:55

          Edited by: user12085357 on 29-abr-2010 3:02
          • 2. Re: ERROR Consuming external Web Services from JDE E1
            DaveHarrison
            You mentioned in your earlier post that you had changed your OCM entry for BSFNs. I assume that you mean that you've added an entry for your user id to point default BSFN calls to a different server. However, I also assume that you're running your application from your development client, and consequently BSFN calls should be mapped to LOCAL for the DV900 environment. Therefore you don't need the OCM override for your user id.

            Also, don't confuse this OCM override with the OCM entry required to point service calls to the BSSV Server, which is done via the Environment/Service Configuration option from the Environment Management menu, rather than the regular OCM menu option.

            Ensure that the dll exists in your c:\e900\DV900\bin32 folder after you've built it. If not, then you'll need to check the output from BusBuild to find out the cause of the build failure.

            Also, since you've changed the Business Function Library that your function is linked to, then you may need to run BusBuild.exe and select Rebuild Libraries from the Build menu and Synchronize JDEBLC from the Tools menu.

            You shouldn't need to mess around with the #pragma or the Java heap space. And you only need to worry about an update package if you're trying to run your app and business function on the main servers.

            Dave
            • 3. Re: ERROR Consuming external Web Services from JDE E1
              mónica
              Hello Dave,

              before of all thank you for you answer. I have answered from your mail.

              · You mentioned in your earlier post that you had changed your OCM entry for BSFNs. I assume that you mean that you've added an entry for your user id to point default BSFN calls to a different server. However, I also assume that you're running your application from your development client, and consequently BSFN calls should be mapped to LOCAL for the DV900 environment. Therefore you don't need the OCM override for your user id.

              Change OCM entry for BSFN => I have forzed to run from Client & server. But in the last tests I have deleted.


              · Also, don't confuse this OCM override with the OCM entry required to point service calls to the BSSV Server, which is done via the Environment/Service Configuration option from the Environment Management menu, rather than the regular OCM menu option.

              You are right. From P90701A --> Exit Form: Configure Servers --> Server Map data Source --> I have added my BSSV Server/Port for the BSSV Service name (I have put the name and port number from Server Manager for my BSSV server, "Runtime Settings". The port number is "Incoming JDENET Port"). Now is right.


              · Ensure that the dll exists in your c:\e900\DV900\bin32 folder after you've built it. If not, then you'll need to check the output from BusBuild to find out the cause of the build failure.

              DLLs exists in this path.

              · Also, since you've changed the Business Function Library that your function is linked to, then you may need to run BusBuild.exe and select Rebuild Libraries from the Build menu and Synchronize JDEBLC from the Tools menu.

              With standard BSFN or a new one I have an error. I have tried "to run BusBuild.exe and select Rebuild Libraries from the Build menu" the Build output is like follows:
              CALLBSFN.dll - 0 error(s), 0 warning(s): Build failed. Restored previous dll.
              CFIN.dll - 0 error(s), 0 warning(s): Build failed. Restored previous dll.
              CMFG.dll - 0 error(s), 0 warning(s): Build failed. Restored previous dll.
              CDIST.dll - 0 error(s), 0 warning(s): Build failed. Restored previous dll.
              CHRM.dll - 0 error(s), 0 warning(s): Build failed. Restored previous dll.
              CAEC.dll - 0 error(s), 0 warning(s): Build failed. Restored previous dll.

              With all DLLs are failed... And If I do "Synchronize JDEBLC" all is right.
              Why are wrong to do "Build failed"????


              and Synchronize JDEBLC from the Tools menu" and I executed form Enterprise Tools Menu (web client in DV900 environment)

              · You shouldn't need to mess around with the #pragma or the Java heap space. And you only need to worry about an update package if you're trying to run your app and business function on the main servers.

              I tried this solution (an update package) and the package was built and deployed succesful, but the error remains the same.

              - I have tried to do a debug from my C Business Function with Visual Studio 2005, but I can't do it because when I tried tu run it, the breakpoints are disabled. And I don't know how can I solve it? I have tried:
              1) Build all in optimized with debug info checked then check out the business function and do a busbuild again on that one business function to fix the issue.
              2) Build all in debug mode and check-in and check-out the BSFN and execute the debug.
              But I can't do the debug...


              Regards.
              • 4. Re: ERROR Consuming external Web Services from JDE E1
                DaveHarrison
                OK...I'm not sure why you're getting the Build Failed messages - maybe there's a lock on the dlls. So try running BusBuild.exe standalone:

                - Log out of E1
                - Run BusBuild.exe from c:\e812\system\bin32
                - Log in when prompted
                - Take the Rebuild Libraries option from the Build menu

                If your application is still not able to execute the BSFN, then you could try Rebuild All from the Build menu, but this will take some time while all the functions are rebuilt.
                • 5. Re: ERROR Consuming external Web Services from JDE E1
                  mónica
                  Hello,

                  I have followed your steps before to execute my interactive application. And all is right.

                  But when I executed it I had the same error:
                  ERROR CallObject@6ad18a: *CallObject.executeRequest(): Problem executing function [invocarWS] lib [CALLBSFN] GetProcAddress failed. Please see Enterprise Server log for details. Business function cannot be found user:JDE Env:DV900*
                  [SEVERE] JDE - [RUNTIME] FormEngine.doEvent(): BSFN failed and need roll back!! | Form Name : P5500055_W5500055A com.jdedwards.runtime.base.SystemException: There was a problem with the sever while running the business function invocarWS.\nThe current transaction has been lost.\nPlease exit the application and restart it.\nButton clicked Line number 1\nP5500055_W5500055A
                  com.jdedwards.runtime.base.SystemException: There was a problem with the sever while running the business function invocarWS.\nThe current transaction has been lost.\nPlease exit the application and restart it.\nButton clicked Line number 1\nP5500055_W5500055A
                       at com.jdedwards.runtime.engine.form.FormEngine.doEvent(Unknown Source)
                       at com.jdedwards.runtime.vtcomponent.form.VTForm.doEvent(Unknown Source)
                       at com.jdedwards.runtime.engine.ButtonEngine.onClick(Unknown Source)
                       at com.jdedwards.runtime.vtcomponent.VTButton.onClick(Unknown Source)
                       at com.jdedwards.runtime.vtcomponent.VTButton.processVirtualEvent(Unknown Source)
                       at com.jdedwards.runtime.virtual.OWVirtual.processVTEvent(Unknown Source)
                       at com.jdedwards.runtime.virtual.OWVirtual.processEventLoop(Unknown Source)
                       at com.jdedwards.runtime.virtual.OWVirtual.run(Unknown Source)
                       at com.jdedwards.base.util.ThreadPool$WorkerThread.run(Unknown Source)

                  It seems that JDE E1 is not able to find the BSFN/DLL...
                  • 6. Re: ERROR Consuming external Web Services from JDE E1
                    852022
                    Hello Monica!
                    You managed to finish tutorial to "Consuming Web Services"?
                    I'm having the same problem as yours when run my application.
                    I've tried various configurations ..
                    Thanks