cancel
Showing results for 
Search instead for 
Did you mean: 

external SOAP-Call ends with general error "PART UNKNOWN (NULL)"

Former Member
0 Kudos

Hi,

we generated a consumer proxy using the following WSDL file:

<?xml version="1.0" encoding="UTF-8"?> <wsdl:definitions targetNamespace="https://soap.global-esign.com/axis/services/GlobalEsignSoapExt" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="https://soap.global-esign.com/axis/services/GlobalEsignSoapExt" xmlns:intf="https://soap.global-esign.com/axis/services/GlobalEsignSoapExt" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns1="https://soap.global-esign.com/xsd" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <!--WSDL created by Apache Axis version: 1.3 Built on Oct 05, 2005 (05:23:37 EDT)--> <wsdl:message name="CreatePdfSignatureRequest"> <wsdl:part name="in0" type="xsd:string"/> <wsdl:part name="in1" type="xsd:string"/> <wsdl:part name="in2" type="xsd:base64Binary"/> <wsdl:part name="in3" type="xsd:string"/> <wsdl:part name="in4" type="xsd:boolean"/> <wsdl:part name="in5" type="xsd:string"/> <wsdl:part name="in6" type="xsd:string"/> </wsdl:message> <wsdl:message name="CreatePdfSignatureResponse"> <wsdl:part name="CreatePdfSignatureReturn" type="xsd:base64Binary"/> </wsdl:message> <wsdl:portType name="GlobalEsignSoapExt"> <wsdl:operation name="CreatePdfSignature" parameterOrder="in0 in1 in2 in3 in4 in5 in6"> <wsdl:input message="impl:CreatePdfSignatureRequest" name="CreatePdfSignatureRequest"/> <wsdl:output message="impl:CreatePdfSignatureResponse" name="CreatePdfSignatureResponse"/> </wsdl:operation> </wsdl:portType> <wsdl:binding name="GlobalEsignSoapExtSoapBinding" type="impl:GlobalEsignSoapExt"> <wsdlsoap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/> <wsdl:operation name="CreatePdfSignature"> <wsdlsoap:operation soapAction=""/> <wsdl:input name="CreatePdfSignatureRequest"> <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://GlobalEsign.tsi.de" use="encoded"/> </wsdl:input> <wsdl:output name="CreatePdfSignatureResponse"> <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="https://soap.global-esign.com/axis/services/GlobalEsignSoapExt" use="encoded"/> </wsdl:output> </wsdl:operation> </wsdl:binding> <wsdl:service name="GlobalEsignSoapExtService"> <wsdl:port binding="impl:GlobalEsignSoapExtSoapBinding" name="GlobalEsignSoapExt"> <wsdlsoap:address location="https://soap.global-esign.com/axis/services/GlobalEsignSoapExt"/> </wsdl:port> </wsdl:service> </wsdl:definitions>

The coding of the test program is:


*&---------------------------------------------------------------------*
*& Report  Z_SOAP_PDF_SIGNATUR
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT  z_soap_pdf_signatur.

*------ Type pools
type-pools: sai.

*------ Class definitions and references
DATA: lo_zpdf_sign    TYPE REF TO zpdfco_global_esign_soap_ext,
      lo_system_fault TYPE REF TO cx_ai_system_fault,
      lo_appl_fault   type ref to cx_ai_application_fault.

*------ data
DATA: output TYPE zpdfcreate_pdf_signature_respo,
      input TYPE  zpdfcreate_pdf_signature.
DATA: wa_controller TYPE prxctrl.
DATA:  pdfout(255) TYPE c  VALUE
 'C:/TEMP/pp-20080229-93ES-40010-0013439840-1690000005.pdf',
       pdfsign(255) TYPE c  VALUE
 'C:/TEMP/pp-20080229-93ES-40010-0013439840-1690000005-sign.pdf',
        wa_objcont TYPE soli,
        objcont LIKE soli  OCCURS 0.

DATA: xlines TYPE string,
      buffer TYPE  xstring,
      x_msg  TYPE c LENGTH 100.

TRY.
    CREATE OBJECT lo_zpdf_sign
      EXPORTING
        logical_port_name = 't_systems'.
  CATCH cx_ai_system_fault .
ENDTRY.

* read unsigned pdf
OPEN DATASET pdfout FOR INPUT MESSAGE x_msg
                    IN BINARY MODE.

TRY.
    READ DATASET pdfout INTO xlines.
  CATCH cx_sy_file_open_mode.
    EXIT.
ENDTRY.

CLOSE DATASET pdfout.

* convert string
CALL FUNCTION 'SCMS_STRING_TO_XSTRING'
  EXPORTING
    text           = xlines
*   MIMETYPE       = ' '
*    encoding       = 'UTF-8'
 IMPORTING
    buffer         = buffer
  EXCEPTIONS
    failed         = 1
    OTHERS         = 2  .


TRY.
    input-in0 = 'user'.
    input-in1 = 'password'.
    input-in2 =  buffer.
    input-in3 = 'affilinet'.

    CALL METHOD lo_zpdf_sign->create_pdf_signature
      EXPORTING
        input  = input
      IMPORTING
        output = output.

  CATCH cx_ai_system_fault INTO lo_system_fault.
    DATA: lv_message TYPE string.
    DATA: lv_message_long TYPE string.
    CALL METHOD lo_system_fault->if_message~get_text
      RECEIVING
        result = lv_message.
    CALL METHOD lo_system_fault->if_message~get_longtext
      RECEIVING
        result = lv_message_long.

    WRITE lv_message.
    WRITE lv_message_long.

  CATCH cx_ai_application_fault into lo_appl_fault.
    DATA: lv_messaap TYPE string.
    DATA: lv_messaap_long TYPE string.
    CALL METHOD lo_appl_fault->if_message~get_text
      RECEIVING
        result = lv_messaap.
    CALL METHOD lo_appl_fault->if_message~get_longtext
      RECEIVING
        result = lv_messaap_long.

    WRITE lv_messaap.
    WRITE lv_messaap_long.

ENDTRY.

LOOP AT output-controller INTO wa_controller.
  WRITE:/ wa_controller-field.
  WRITE:/ wa_controller-value.
ENDLOOP.


* store signed pdf
OPEN DATASET pdfsign FOR output MESSAGE x_msg
                    IN BINARY MODE.

transfer output-CREATE_PDF_SIGNATURE_RETURN
         to pdfsign.

Processing the soap call in the test programm ends in a system exception (cx_ai_system_fault) with the message:

"General Error Es ist ein Fehler bei der Proxy-Verarbeitung aufgetreten ( PART UNKNOWN (NULL) )"

It seems as if there is no response or a response in a wrong format given by the webservice.

We had a look at the ICF-Trace.

The request seems to be a proper soap-call.

But the response is not in XML-format and therefore could not be completely displayed.

it says:

Ungültig auf der obersten Ebene im Dokument. Fehler beim Bearbeiten der Ressource 'file:///C:/Dokumente und Einstellungen/S...

HTTP/1.1 200 OK

^

Could anybody help ?

Kind regards

Heinz

Accepted Solutions (0)

Answers (4)

Answers (4)

attila_mikulan
Employee
Employee
0 Kudos

Hi all,

PART UNKNOWN (NULL) means the response received from the provider is not valid, based on the WSDL file.

Check the following Wiki page on this topic: Provider's response cannot be parsed when executing Service Consumer - ABAP Connectivity - SCN Wiki

Cheers,

Attila

Former Member
0 Kudos

We have the same problem here with an external web service.

Is there any solution known to this issue yet?

Former Member
0 Kudos

Hello Mathias,

in our case the problem was, that the WDSL used parameters, which were not correcty interpreted by the SAP-Routine that creates the proxy.

We changed the WDSL using only paramters covert by SAP.

Here ist the WSDL that worked fine:

<?xml version="1.0" encoding="utf-8" ?>

- <wsdl:definitions targetNamespace="https://soap.global-esign.com/axis/services/GlobalEsignSoapExt" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:tns="https://soap.global-esign.com/axis/services/GlobalEsignSoapExt" xmlns:tsi="http://GlobalEsign.tsi.de">

- <wsdl:documentation>

<sidl:sidl xmlns:sidl="http://www.sap.com/2007/03/sidl" />

</wsdl:documentation>

- <wsdl:types>

- <xsd:schema elementFormDefault="qualified" targetNamespace="https://soap.global-esign.com/axis/services/GlobalEsignSoapExt" xmlns="https://soap.global-esign.com/axis/services/GlobalEsignSoapExt">

- <xsd:complexType name="CreatePdfSignature">

- <xsd:sequence>

<xsd:element name="in0" type="xsd:string" />

<xsd:element name="in1" type="xsd:string" />

<xsd:element name="in2" type="xsd:base64Binary" />

<xsd:element name="in3" type="xsd:string" />

<xsd:element name="in4" type="xsd:boolean" />

<xsd:element name="in5" type="xsd:string" />

<xsd:element name="in6" type="xsd:string" />

</xsd:sequence>

</xsd:complexType>

</xsd:schema>

- <xsd:schema targetNamespace="http://GlobalEsign.tsi.de" xmlns="http://GlobalEsign.tsi.de">

<xsd:import namespace="https://soap.global-esign.com/axis/services/GlobalEsignSoapExt" />

<xsd:element name="CreatePdfSignature" type="tns:CreatePdfSignature" />

- <xsd:element name="CreatePdfSignatureResponse">

- <xsd:complexType>

- <xsd:sequence>

<xsd:element name="CreatePdfSignatureReturn" type="xsd:base64Binary" />

</xsd:sequence>

</xsd:complexType>

</xsd:element>

</xsd:schema>

</wsdl:types>

- <wsdl:message name="CreatePdfSignature">

<wsdl:part name="CreatePdfSignature" element="tsi:CreatePdfSignature" />

</wsdl:message>

- <wsdl:message name="CreatePdfSignatureResponse">

<wsdl:part name="CreatePdfSignatureResponse" element="tsi:CreatePdfSignatureResponse" />

</wsdl:message>

- <wsdl:portType name="GlobalEsignSoapExt">

- <wsdl:operation name="CreatePdfSignature">

<wsdl:input message="tns:CreatePdfSignature" />

<wsdl:output message="tns:CreatePdfSignatureResponse" />

</wsdl:operation>

</wsdl:portType>

</wsdl:definitions>



<wsdl:part name="in1" type="xsd:string"/>   was changed to <xsd:element name="in0" type="xsd:string" /> .


Please let me know, whether you succeeded.


Kind regards


Heinz Schäfe

Former Member
0 Kudos

Thanks for your reply.

I will have a look whether that could be our issue as well.

Former Member
0 Kudos

Were you able to resolve this issue ??

I am getting the same error.

In the Payload trace I see that valid response is received from external system but after that SAP is making it blank.

There are no other error in trace or error log.

Former Member
0 Kudos

Hello Heinz & Johann,

We are also facing the same issue when we try to consume a web service created in REMEDY into SAP GRC AC 10.

The data is received in the "Work order" of Remedy system , but there is no response received and at the end of the consumption test

we get the error "GENERAL_ERROR Error duing proxy processing  (PART UNKNOWN (NULL) )"

I also observed that there are no logs seen for this web service in "SOAMANAGER", neither under Warning" , neither under Error.

Just no logs for this event.

Is there any workaround or fix for this issue ?

Please share with us.

Thanks in advance.

Regards,

Victor

Former Member
0 Kudos

Hi Victor ,

we are also facing the same 

Error duing proxy processing (PART UNKNOWN (NULL)   )

error while trying to consume the external web service from Oracle to SAP.

we are able to see the response in Web Service Utilities:Payload Trace(SRT_UTIL).

If you found any solution to solve this issue?

Please share with us.

Best Regards,

Raja.

0 Kudos

Hi Heinz,

I have the same problem. Have you solved the problem? Can you tell me the solution.

Thanks for help.

Kind regards

Johann