none
Error on BAPI Schema generation for SAP Adapter 3.0 RRS feed

  • Question

  • In our project we want to execute a method of the GoodsReceipt bapi. The method is called CreateFromData.

    In the design mode (wizard to generate the BAPI Schema) I've selected...

    EnableBizTalkCompatiblityMode = True

    EnableBusinessObjects = True

    EnableSafeTyping = True

    Once I browse under the BAPI node I can find the BAPI, then i try to generate the Schema. I get the error I've pasted at the end of this message. The error describes that the wizard cannot reach or find the ARCHIV_DISPLAY_META function inside of SAP. I've check this function and it is not Remote-Enabled, but this is an standard function from SAP and it is marked as Not Release, so modifying the properties of this function it is not recommended. We are using SAP ECC 6.0 and we are working with RFC's and IDOCs without any issues. I know we can call the function BAPI_GOODSMVT_CREATE that it is behind the CreateFromData bapi method, but still i dont have an answer why this error is occurring. The credentials i'm using are from a SAP Developer so i have access to execute almost all the functions in my sandbox system. It is a dialog user so the SapErrorMessage is misleaded.

    Any help is appreciated.

    -----------------------------------------------------------------------------------------------------------------------

    Microsoft.ServiceModel.Channels.Common.MetadataException: Retrieval of Operation Metadata has failed while building WSDL at 'http://Microsoft.LobServices.Sap/2007/03/Bapi/MKPF/ARCHIVEDDOCSDISPLAY/ARCHIV_DISPLAY_META' ---> Microsoft.ServiceModel.Channels.Common.MetadataException: RFC ARCHIV_DISPLAY_META could not be resolved against SAP system because its metadata could not be obtained. ---> Microsoft.Adapters.SAP.RFCException: Details: ErrorCode=RFC_INVALID_PARAMETER. ErrorGroup=RFC_ERROR_SYSTEM_FAILURE. SapErrorMessage=Log on with a dialog user. AdapterErrorMessage=An error occurred while determining the function interface of the RFC ARCHIV_DISPLAY_META.

    at Microsoft.Adapters.SAP.RFCException.HelperThrow(Int32 retCode, String additionalErrorMessage)

    at Microsoft.Adapters.SAP.RfcClientConnection.GetRfcFunctionInterface(String rfcName)

    at Microsoft.Adapters.SAP.SapFunctionMetadata.ResolveOperationMetadataUsingSdk(String absoluteName, String displayName, String funcName, String operationNamespace, SAPConnection sapConnection, Boolean isTrfc, MetadataLookup metadataLookup, TimeoutHelper timeoutHelper)

    --- End of inner exception stack trace ---

    at Microsoft.Adapters.SAP.SapFunctionMetadata.ResolveOperationMetadataUsingSdk(String absoluteName, String displayName, String funcName, String operationNamespace, SAPConnection sapConnection, Boolean isTrfc, MetadataLookup metadataLookup, TimeoutHelper timeoutHelper)

    at Microsoft.Adapters.SAP.SapFunctionMetadata.ResolveOperationMetadata(String absoluteName, String displayName, String funcName, String operationNamespace, SAPConnection sapConnection, Boolean isTrfc, MetadataLookup metadataLookup, TimeoutHelper timeoutHelper)

    at Microsoft.Adapters.SAP.SAPMetadataContract.AdapterResolveOperationMetadata(String operationId, TimeSpan timeout, TypeMetadataCollection& extraTypeMetadataResolved)

    at Microsoft.Adapters.AdapterUtilities.AdapterMetadataContract.ResolveOperationMetadata(String operationId, TimeSpan timeout, TypeMetadataCollection& extraTypeMetadataResolved)

    at Microsoft.ServiceModel.Channels.Common.Design.MetadataCache.GetOperationMetadata(String uniqueId, Guid clientId, TimeSpan timeout)

    at Microsoft.ServiceModel.Channels.Common.Design.WsdlBuilder.SearchBrowseNodes(MetadataRetrievalNode[] nodes, WsdlBuilderHelper helper, TimeoutHelper timeoutHelper)

    --- End of inner exception stack trace ---

    Server stack trace:

    at Microsoft.ServiceModel.Channels.Common.Design.AdapterExceptions.ThrowMetadataException(String errorMessage, Object arg, Object source, Exception innerException)

    at Microsoft.ServiceModel.Channels.Common.Design.WsdlBuilder.SearchBrowseNodes(MetadataRetrievalNode[] nodes, WsdlBuilderHelper helper, TimeoutHelper timeoutHelper)

    at Microsoft.ServiceModel.Channels.Common.Design.WsdlBuilder.GenerateOperationSchemas(WsdlBuilderHelper helper, MetadataRetrievalNode[] nodes, TimeSpan timeout)

    at Microsoft.ServiceModel.Channels.Common.Design.WsdlBuilder.SearchBrowseNodes(MetadataRetrievalNode[] nodes, WsdlBuilderHelper helper, TimeoutHelper timeoutHelper)

    at Microsoft.ServiceModel.Channels.Common.Design.WsdlBuilder.GenerateOperationSchemas(WsdlBuilderHelper helper, MetadataRetrievalNode[] nodes, TimeSpan timeout)

    at Microsoft.ServiceModel.Channels.Common.Design.WsdlBuilder.GetWsdl(MetadataRetrievalNode[] nodes, Uri uri, TimeSpan timeout)

    at Microsoft.Adapters.SAP.SapCustomWsdlRetrieval.GetWsdl(MetadataRetrievalNode[] nodes, Uri uri, TimeSpan timeout)

    at Microsoft.ServiceModel.Channels.Common.Design.MetadataExchanger.ProcessMetadataGet(Message message, Uri target, TimeSpan timeout, MetadataLookup metadataLookup)

    at Microsoft.ServiceModel.Channels.Common.Design.MetadataExchanger.ProcessMetadataMessage(Message message, Uri target, TimeSpan timeout, MetadataLookup metadataLookup, Message& replyMessage)

    at Microsoft.ServiceModel.Channels.Common.Channels.AdapterRequestChannel.Request(Message message, TimeSpan timeout)

    at Microsoft.Adapters.Internal.LayeredChannelBindingElement.LayeredOutboundChannel`1.System.ServiceModel.Channels.IRequestChannel.Request(Message message, TimeSpan timeout)

    at System.ServiceModel.Dispatcher.RequestChannelBinder.Request(Message message, TimeSpan timeout)

    at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)

    at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs)

    at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)

    at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)

    Exception rethrown at [0]:

    at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)

    at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)

    at Microsoft.ServiceModel.Channels.IMetadataRetrievalContract.GetMetadata(MetadataRetrievalNode[] nodes)

    at Microsoft.ServiceModel.Channels.Tools.MetadataSearchBrowse.MetadataPanel.GetWsdl(MetadataRetrievalNode[] nodes)

    at Microsoft.ServiceModel.Channels.Tools.MetadataSearchBrowse.MetadataUserControl.GetWsdl()


    MHG
    Tuesday, October 12, 2010 7:17 PM

Answers

  • Hello MHG,

    The above error indicates that you have generated metadata for an entire object some of the methods that are not remote enabled. The adapter can retrieve metadata of the functions that are remote enabled.

    Try excluding the ARCHIV_DISPLAY_META function when generating the schema for various BAPI functions.

    Thanks,

    Belinda

     

    Thursday, October 21, 2010 9:03 PM
    Moderator