Ankündigung

Einklappen
Keine Ankündigung bisher.

Soap - wie Array formatieren ...

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Soap - wie Array formatieren ...

    Hallo Forum,

    ich habe eine für Euch hoffentlich einfache Frage, ich bekomme es leider nicht hin.
    Ich setze über Soap einen Request ab, den ich über ein Array generiere. Das funktiniert auch gut.
    Nun will ich aber, dass ein Eintrag nicht nur einmal vorkommt (ShipmentUnit) sondern 1-X mal.
    Also Ergebnis sollte in XML das sein:

    <SOAP-ENV:Body>
    ...
    <ns1:ShipmentUnit>
    <ns1:Weight>1</ns1:Weight>
    <ns1:Note1>Ich bin ein Bemerkungstext Unit 1</ns1:Note1>
    </ns1:ShipmentUnit>

    <ns1:ShipmentUnit>
    <ns1:Weight>2</ns1:Weight>
    <ns1:Note1>Ich bin ein Bemerkungstext Unit 2</ns1:Note1>
    </ns1:ShipmentUnit>
    ...
    </SOAP-ENV:Body>

    Mir ist leider nicht klar, wie ich das in meinem Array abbilde.
    Mache ist das wie folgt, überschreibt natürlich der zweite den ersten Eintrag.

    Hier mein Array:

    Code:
    $request['Shipment'] = array(
       'ShipmentReference' => '12345',
       'Product' => 'Parcel',
       'Identifier' => 'userTestId',
       'Consignee' => array(
        'Address' => array(
            'Name1' => 'Max Mustermann',
            'CountryCode' => 'de',
            'ZIPCode' => '12345',
            'City' => 'Berlin',
            'Street' => 'Munsterdamm',
            'StreetNumber' => '21'
        )
       ),
       'Shipper' =>  array(
        'ContactID' => 'xxx123',
       ),
    
     'ShipmentUnit' => array(
        'Weight' => '1',
        'Note1' => 'Ich bin ein Bemerkungstext Unit 1',
       ),
    
     'ShipmentUnit' => array(
        'Weight' => '2',
        'Note1' => 'Ich bin ein Bemerkungstext Unit 2',
       ),
    
    );
    Hier was bei raus kommt:

    Code:
    <SOAP-ENV:Body>
          <ns1:ShipmentRequestData>
             <ns1:Shipment>
                <ns1:ShipmentReference>12345</ns1:ShipmentReference>
                <ns1:Identifier>userTestId</ns1:Identifier>
                <ns1:Product>Parcel</ns1:Product>
                <ns1:Consignee>
                   <ns2:Address>
                      <ns2:Name1>Max Mustermann</ns2:Name1>
                      <ns2:CountryCode>de</ns2:CountryCode>
                      <ns2:ZIPCode>12345</ns2:ZIPCode>
                      <ns2:City>Berlin</ns2:City>
                      <ns2:Street>Munsterdamm</ns2:Street>
                      <ns2:StreetNumber>21</ns2:StreetNumber>
                   </ns2:Address>
                </ns1:Consignee>
                <ns1:Shipper>
                   <ns2:ContactID>xxx123</ns2:ContactID>
                </ns1:Shipper>
    
      <ns1:ShipmentUnit>
                   <ns1:Weight>2</ns1:Weight>
                   <ns1:Note1>Ich bin ein Bemerkungstext Unit 2</ns1:Note1>
                </ns1:ShipmentUnit>
    
             </ns1:Shipment>
          </ns1:ShipmentRequestData>
       </SOAP-ENV:Body>
    Hier was bei rauskommen soll:

    Code:
     <SOAP-ENV:Body>
          <ns1:ShipmentRequestData>
             <ns1:Shipment>
                <ns1:ShipmentReference>12345</ns1:ShipmentReference>
                <ns1:Identifier>userTestId</ns1:Identifier>
                <ns1:Product>Parcel</ns1:Product>
                <ns1:Consignee>
                   <ns2:Address>
                      <ns2:Name1>Max Mustermann</ns2:Name1>
                      <ns2:CountryCode>de</ns2:CountryCode>
                      <ns2:ZIPCode>12345</ns2:ZIPCode>
                      <ns2:City>Berlin</ns2:City>
                      <ns2:Street>Munsterdamm</ns2:Street>
                      <ns2:StreetNumber>21</ns2:StreetNumber>
                   </ns2:Address>
                </ns1:Consignee>
                <ns1:Shipper>
                   <ns2:ContactID>276a152vV3</ns2:ContactID>
                </ns1:Shipper>
    
       <ns1:ShipmentUnit>
                   <ns1:Weight>1</ns1:Weight>
                   <ns1:Note1>Ich bin ein Bemerkungstext Unit 1</ns1:Note1>
                </ns1:ShipmentUnit>
    
     <ns1:ShipmentUnit>
                   <ns1:Weight>2</ns1:Weight>
                   <ns1:Note1>Ich bin ein Bemerkungstext Unit 2</ns1:Note1>
                </ns1:ShipmentUnit>
    
    
             </ns1:Shipment>
          </ns1:ShipmentRequestData>
       </SOAP-ENV:Body>
    wenn mir da jemand auf die Sprünge helfen könnte (wie ich mein Array anpassen muss), wäre ich unendlich dankbar.

    Lg
    Stefan



  • #2
    Code:
     'ShipmentUnit' => array(
    mal geändert in?

    Code:
     'ShipmentUnit'[] => array(
    Edit: So meine ich:
    PHP-Code:
    $request['Shipment'] = array(
       
    'ShipmentReference' => '12345',
       
    'Product' => 'Parcel',
       
    'Identifier' => 'userTestId',
       
    'Consignee' => array(
        
    'Address' => array(
            
    'Name1' => 'Max Mustermann',
            
    'CountryCode' => 'de',
            
    'ZIPCode' => '12345',
            
    'City' => 'Berlin',
            
    'Street' => 'Munsterdamm',
            
    'StreetNumber' => '21'
        
    )
       ),
       
    'Shipper' =>  array(
        
    'ContactID' => 'xxx123',
       ),

     
    'ShipmentUnit' => array(
        array (
    'Weight' => '1''Note1' => 'Ich bin ein Bemerkungstext Unit 1'),
        array( 
    'Weight' => '2''Note1' => 'Ich bin ein Bemerkungstext Unit 2', ),
       ),


    ); 

    Kommentar


    • #3
      Klasse, das war es.

      Vielen Dank!!!

      Kommentar

      Lädt...
      X