BSFN Error - BSFN Load Failed

Reddy_240

Reddy_240

Active Member
Hi All,

Currently I do have issue with a Business Function which is calling the AS/400 program. We are calling this Business function in a Report to call the AS/400 Program at the end of the report. But when the call goes to Business Function its throwing an error called “Business Function Load Failed – CALLLIB - _CallAS400Program@12”.
It’s an Upgrade Project from Xe to E9 and we are using Microsoft Visual Studio 2008.
Please find the attached Log Error and BSFN Error

Thanks,
Reddy
JDE E9 consultant
 

Attachments

  • 167066-JDE_B58AS400.txt
    3.1 KB · Views: 441
Hi,

You have at least 2 errors there :

1. Unable to find F0010T, it's obviously missing from
your Server OCM or the table doesn't exist (or it's
unable to open it). Run a DSPLIB TESTDTA, or even
better : STRSQL SELECT * FROM TESTDTA/F0010T

2. Your server is trying to call a DLL.
I suspect that your BSFN C code is Windows oriented,
not platform agnostic (i.e. it's calling a DLL on
AS/400 which will never work, AS/400 relies on *SRVPGM)
 
That error generally means it could not find the function in the given dll. Your log makes reference to GSFLIB.dll and your post makes reference to CALLLIB.

Did the Parent DLL change for that function?
There seems to be some discrepancy between where E1 expects to find it.

If the Parent DLL was changed, a full package is the only fix (an update package probably won't cut it)
 
Reddy,

To add to what the others have stated/asked - make 100% sure that your Function Name EXACTLY matches what is expected (Spelling AND Capitalization). I had a similar issue a few months ago where I had fat-fingered a function-call within a function (all hades broke loose over a single character).

(db)
 
JMR,

The Parent DLL was GSFLIB.dll only which i wrote wrongly as CALLLIB instead of GSFLIB over there in the Post.
 
Hi Daniel,

I was just checking at your point, but still i have missed some more calarity how to check this. Below i mentioned the steps which i done as per your suggestion.
1. I opened the F9862 Table and i checked the object description there with F9860 Table and it is similar way.
Could you please share me your past resolved experience on this issue.If you have any screenshot it will be better for me to resolve.

Thanks,
Reddy
 
I think what Daniel is referring to is when you call a BSFN from within a c-business function, you must make sure the function name string exactly matches the function name as defined in OMW (spelling and case).

I get the impression you're calling your BSFN from within ER of a report. If so, that won't apply to your issue.

Can you describe the steps taken so far in regards to the BSFN in error and the parent DLL.

1) are you running this on a server or locally on fat client when you get this error? Are you sure the new function has been deployed to the location you're running your report?

2) is the parent dll brand new? Has it ever been deployed to server in past and been working there prior to this issue?

You can also try to verify the contents of your gsflib.dll. This can be done using the 'depends.exe' tool (you can usually find this at \visual_studio_install_folder\Common7\Tools\Bin )

OR

You can use the dumpbin option from the Tools menu of BusBuild.

Either option you choose will provide a list of all functions available in the dll. You need to try to look for _CallAS400Program @12 (with no space between 'm' and '@'...I put that in there so it wouldn't be treated as an email address and you could more easily see there is a leading underscore).
 
If you have access to Support.Oracle.Com:
ID 790921.1

Basically, the common issues to attempt calling:
ThisIsATest

But, the developer fat-fingers the shift key and attempts to call:
ThisisaTest

Many times the compiler will compile with no errors, but the call 'will' fail on the server.

Note: that F0010T Table does not appear to have been generated in the target environment. In most cases, if you get a "Describe" error - either the specs on the client are incorrect (not current with packages), the table on the Server was not generated with the most current specs or the table has not been generated on the server....


One more issue to consider - the location of any RPG, CL or other process you are calling on the iSeries. If you attempt to call 'something' that is either not in the default/specified library - you can get the same error. Make sure your target application is valid for the 'location' you are attempting to call it. Call a CL and use the power of the CL to create your library list for that process.

CAUTION: When you sub-call a process from a submitted job (ube), that sub-process inherits the nature of it's parent (Overrides, library lists, stuff....). If you change the job attributes from within the sub-process - you can find yourself adjusting attributes of the parent, as well.

Yes - I have made almost all the mistakes a person can make, while working within the E1 Toolset.

(db)
 
Back
Top