cancel
Showing results for 
Search instead for 
Did you mean: 

JCO error : BAPI not found

Former Member
0 Kudos

Hi all,

I am struggling with an error which tells me that a BAPI,  which I can run with the SE37 SAP transaction,  is not found using the JCO MII action block . MII connect to SAP ECC with a communication user who has SAP ALL permissions .  We have several MII apps running SAP JCO action blocks with no problems at all using the same user and connection configuration . When configurating the action ,  I can see a long BAPI list but not the one I need .

How come ¡?

Please help ,  thanks in advance

Note : We are running a 12.2.3 build 167 sp5 MII plataform

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Probably the problem lies of the BAPI itself. I heard from a co-worker that the custome BAPI need to be "Remote" enabled. Is this done?

sengkiang

Former Member
0 Kudos

Hi Seng,

The new BAPI is remote enabled according to the SE80 sap transaction

Thanks,

agentry_src
Active Contributor
0 Kudos

Did you restart the NW server?  Or just the MII portions?

If the NW server restart did not work, then you will need to get the NW admin or the Basis folks involved.  The BAPIs should be present in the NW server for them to be available to MII, but it is not really an MII issue so much as a NW-ERP issue.  Check also the credentials of the JCo connection to make sure there is no permissions issue (you probably already did, but figured I would check)

0 Kudos

Fernando,

Can you try to create another "dummy" ZBAPI, call it something like ZBAPI_DELETE_ME and see if this is visible after resetting the JCo connection pool as mentioned earlier.  I think that the namespace may be playing a role in hiding this from the browse.  I am not convinced this is the case but I think that it's worth looking into.  Also, for this dummy ZBAPI make sure you're only using basic input types in case the API is not browsing it due to a custom structure that it is incorreclty referencing on the ABAP side.


Sam

Former Member
0 Kudos

Michael,

I restarted the whole thing ,  We have both ( MII server and NW server ) at the same server .

Thanks,

Former Member
0 Kudos

Thanks Sam,

I tell you what I did ( a little different ) .  I asked our ABAP developer to create a copy of one of the visible BAPI .  I reset the JCO Connection pool .  Next is the service response :

<Message>JCOProxy Reset Message Sent Successfully</Message>

I I logged off and on ,  opened the workbench and I could not even see this copy of a visible BAPI .

Please help,  thanks a  lot ... best regards,

Answers (3)

Answers (3)

Former Member
0 Kudos

Tough one!

There might be something you want to continue trying.

1. Authorization for this specific BAPI? I am no expert in ABAP but I have experience that some BAPI returns very litte information with one user login compares to another. You probably want to try a full authorized ERP user credential to check if this is the problem.

2. Create a new BAPI from scratch instead of copied as what you have tried.

Former Member
0 Kudos

Thanks Seng,

The comunication sap user that MII uses has a SAP ALL privilegies at our SAP development server where the new BAPI resides .  Our ABAP developer has just transported the new BAPI to our QA test server . I will check if the new BAPI at the QA server is visible from MII . 

Thanks,

Former Member
0 Kudos

Good afternoon,

I am so sorry,  the root cause was a d instead of a p in the long server SAP name .  We use to have short names and now all have almost the same long names having a little difference among them.

So sorry,  anyway I appreciate to much all your help .

Former Member
0 Kudos

One more thing you can investigate is Log Viewer... Did you see any error?

Former Member
0 Kudos
JCO Proxy Error: NO_FUNCTION_FOUND
[EXCEPTION]
com.sap.mw.jco.JCO$AbapException: (126) NO_FUNCTION_FOUND: NO_FUNCTION_FOUND
at com.sap.mw.jco.MiddlewareJRfc$Client.execute(MiddlewareJRfc.java:1514)
at com.sap.mw.jco.JCO$Client.execute(JCO.java:4256)
at com.sap.mw.jco.JCO$Client.execute(JCO.java:3790)
at com.sap.xmii.storage.connections.JCOCallHandler.queryRFCList(JCOCallHandler.java:233)
at com.sap.xmii.servlet.JCOProxy.handleList(JCOProxy.java:181)
at com.sap.xmii.servlet.JCOProxy.service(JCOProxy.java:73)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
at com.sap.engine.services.servlets_jsp.server.runtime.FilterChainImpl.runServlet(FilterChainImpl.java:162)
at com.sap.engine.services.servlets_jsp.server.runtime.FilterChainImpl.doFilter(FilterChainImpl.java:81)
at com.sap.xmii.system.SecurityFilter.doFilter(SecurityFilter.java:186)
at com.sap.engine.services.servlets_jsp.server.runtime.FilterChainImpl.doFilter(FilterChainImpl.java:73)
at com.sap.xsrf.filter.XSRFProtectorFilter.doFilter(XSRFProtectorFilter.java:62)
at com.sap.engine.services.servlets_jsp.server.runtime.FilterChainImpl.doFilter(FilterChainImpl.java:73)
at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:469)
at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:299)
at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:399)
at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:388)
at com.sap.engine.services.servlets_jsp.filters.DSRWebContainerFilter.process(DSRWebContainerFilter.java:48)
at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
at com.sap.engine.services.servlets_jsp.filters.ServletSelector.process(ServletSelector.java:84)
at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
at com.sap.engine.services.servlets_jsp.filters.ApplicationSelector.process(ApplicationSelector.java:244)
at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
at com.sap.engine.services.httpserver.filters.WebContainerInvoker.process(WebContainerInvoker.java:78)
at com.sap.engine.services.httpserver.chain.HostFilter.process(HostFilter.java:9)
at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
at com.sap.engine.services.httpserver.filters.ResponseLogWriter.process(ResponseLogWriter.java:60)
at com.sap.engine.services.httpserver.chain.HostFilter.process(HostFilter.java:9)
at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
at com.sap.engine.services.httpserver.filters.DefineHostFilter.process(DefineHostFilter.java:27)
at com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12)
at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
at com.sap.engine.services.httpserver.filters.MonitoringFilter.process(MonitoringFilter.java:29)
at com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12)
at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
at com.sap.engine.services.httpserver.filters.MemoryStatisticFilter.process(MemoryStatisticFilter.java:43)
at com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12)
at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
at com.sap.engine.services.httpserver.filters.DSRHttpFilter.process(DSRHttpFilter.java:42)
at com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12)
at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
at com.sap.engine.services.httpserver.server.Processor.chainedRequest(Processor.java:428)
at com.sap.engine.services.httpserver.server.Processor$FCAProcessorThread.process(Processor.java:247)
at com.sap.engine.services.httpserver.server.rcm.RequestProcessorThread.run(RequestProcessorThread.java:45)
at com.sap.engine.core.thread.execution.Executable.run(Executable.java:122)
at com.sap.engine.core.thread.execution.Executable.run(Executable.java:101)
at com.sap.engine.core.thread.execution.CentralExecutor$SingleThread.run(CentralExecutor.java:327)

2013-08-29
12:07:40:681
com.sap.xmii.servlet.JCOProxy
com.sap.xmii.servlet.JCOProxy
sap.com/xapps~xmii~ear
Thread[HTTP Worker [@2142988662],5,Dedicated_Application_Thread]
j2ee\cluster\server0\log\defaultTrace_00.trc
6223e9b910cd11e3a82e00000074311e
574
arodriguez
0-500
sap.com/xapps~xmii~ear
7614750000000004
6223E9B910CD11E3A82E00000074311E
6223e9b910cd11e3a82e00000074311e
0
005056A91F4E050F0000000300000B14
SOFCMIID01
MID
J00
server0
Former Member
0 Kudos

Hi Seng,

This is log , and yes it is an error  .  Hope this log take us to a solution .

Thanks & best regards,

agentry_src
Active Contributor
0 Kudos

Hi Fernando,

What BAPI are you having trouble with?

Regards, Mike

Former Member
0 Kudos

Thanks Michael

We are developing a MII app which requires a new BAPI . This BAPI has just been built with a name of "/PGPB/MFLGPEF_CTL_IMP_LPG"  . When I use the "search pattern" field an enter this name ,  MII responses with the following error :

"JCO Proxy error: NOT_FUNCTION_FOUND"

If I use an "/PGPB/*" , MII gives me a list of all the BAPIs available .  The communication user has a SAP ALL permission . I have double checked the connections and MII is pointing to our SAP ECC development server where the new BAPI exists.

Please help

agentry_src
Active Contributor
0 Kudos

I think we have seen this problem before.  I am not sure, but I believe the BAPI needs to be transported to the NW server on which MII is installed.  It may be that all that needs to be done is a restart of the NW server to force the update with the new BAPI.  I would talk to your NW admin or Basis person to see if there is a simpler way to get the new BAPI onto the NW server.

Regards, Mike

Former Member
0 Kudos

thanks,

We will try your recomendation .  I will keep you informed.

Best regards,

former_member211944
Active Participant
0 Kudos

Hi Michael,

I have a doubt regarding this suggestion you have given.

Why is this new BAPI needs to be transported to the NW server on which MII is running?

Because ERP system and MII are running on different servers then MII would get all the RFC's present on the ERP system.

Does the NW server caches the BAPI's List?

Regards,

Rohit Negi.

agentry_src
Active Contributor
0 Kudos

Hi Rohit,

I am not an NW expert, but this topic has come up a number of times during the last few years and always with custom BAPIs or updates to custom BAPIs.  I believe that the NW server does cache the BAPI/RFC lists from the connected ERP system.  At least that seems to be the way it behaves.  Let me see if I can find a technical resource to look at this topic and weigh in with a more knowledgeable response.

Regards, Mike

0 Kudos

Fernando,

Are you sure the BAPI is "Remote Enabled", you can check this via SE80 and looking at the ABAP definition.  There is a checkbox in the BAPI definition that exposes it for remote calls.


Sam

agentry_src
Active Contributor
0 Kudos

Hi Rohit and Fernando,

I did get a response from the IMS(?) folks supporting MII.  Here is the exact quote:

"

They could call /XMII/JCOProxy?Mode=Reset to clear the MII repositories, or failing that, restart the NW instance MII is running on.  Changes made in ERP will not reflect in MII calls unless these repositories are cleared.

"

Regards, Mike

Just to follow up, I remembered that the Mode=Reset does not work consistently, though I seem to remember that was due to some NW settings.  Most seem to end up restarting the NW instance.

Message was edited by: Michael Appleby

0 Kudos

You can also change the server name in the Connection Alias to an invalid server name, save it and then set it back to the valid server name.  This will also clear the connection pool and cached documents that the JCo connection stores.


Sam

agentry_src
Active Contributor
0 Kudos

Nice trick Sam.  Have to remember that.

Thanks, Mike

Former Member
0 Kudos

Hi Michael,

I restarted our MII development server and nothing happened .  I still do not see the new BAPI .

Thanks,

Former Member
0 Kudos

Hi Sam,

yes , the new BAPI is remote enabled at the SE80 transaction .

Thanks,

Former Member
0 Kudos

Sam,

I changed the connection alias and set it back to the valid server name . i still can not see the new BAPI .

Please help,

Former Member
0 Kudos

Hi Michael,

I cleared the MII repositories and still can not see the new BAPI .

please help,