mercredi 13 mars 2019

How to send xml data using guzzle in laravel 5.7

I am not familiar for update database using xml format, but for this case i want to update data using xml in laravel 5.7 and Guzzle 6. I have created function to do this.

This is my function :

$xmlrequest = '<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:c1c="http://splwg.com/C1CustomerContactMaintenance.xsd">
           <SOAP-ENV:Header xmlns:wsse="http://www.w3.org/2001/XMLSchema-instance">
            <wsse:Security>
                <wsse:UsernameToken>       
                    <wsse:Username>xxxx</wsse:Username>
                    <wsse:Password Type="PasswordText">xxxx</wsse:Password>        
                </wsse:UsernameToken>    
            </wsse:Security>  
           </SOAP-ENV:Header>
            <SOAP-ENV:Body>
                <C1FieldActivityMaintenance dateTimeTagFormat="CdxDateTime"  transactionType ="UPDATE" >
                    <C1FieldActivityMaintenanceService>
                        <C1FieldActivityMaintenanceHeader
                            FieldActivityID="2607230614" 

                        /><C1FieldActivityMaintenanceDetails 
                            FieldActivityID="2607230614" 
                            ActivityType="FA-RECON"  
                            > 
                            <FASteps>
                                <FAStepsHeader
                                    FieldActivityID="2607230614" 
                                    />

                            </FASteps>
                            <FACharacteristics>
                                <FACharacteristicsHeader
                                    FieldActivityID="2607230614" 
                                    />
                                <FACharacteristicsRow
                                    rowAction="Change" 
                                    FieldActivityID="2607230614" 
                                    CharacteristicType="CM029A" 
                                    SearchCharacteristicValue="PS" 
                                    CharacteristicValue="BERMATRUS" 
                                    >
                                </FACharacteristicsRow>
                                <FACharacteristicsRow
                                    rowAction="Change" 
                                    FieldActivityID="2607230614" 
                                    CharacteristicType="CM004C" 
                                    SearchCharacteristicValue="PS" 
                                    CharacteristicValue="0.5" 
                                    >
                                </FACharacteristicsRow>
                            </FACharacteristics>
                            <FaRem>
                                <FaRemHeader
                                    FieldActivityID="2607230614" 
                                    />

                            </FaRem>
                            <FaLog>
                                <FaLogHeader
                                    FieldActivityID="2607230614" 
                                    />
                                <FaLogRow
                                    rowAction="Add" 
                                    FieldActivityID="2607230614" 
                                    DateTime="2018-10-06 02:50:00" 
                                    Details="Kondisi Meter Lama" 
                                    User="SIMPEL2" 
                                    LogType="EMSG" 
                                    >
                                </FaLogRow>
                                <FaLogRow
                                    rowAction="Add" 
                                    FieldActivityID="2607230614" 
                                    DateTime="2018-10-06 02:50:00" 
                                    Details="Ukuran Meter Lama" 
                                    User="SIMPEL2" 
                                    LogType="EMSG" 
                                    >
                                </FaLogRow>
                            </FaLog>
                        </C1FieldActivityMaintenanceDetails>
                    </C1FieldActivityMaintenanceService>
                </C1FieldActivityMaintenance>
            </SOAP-ENV:Body>
        </SOAP-ENV:Envelope>';


        $action = 'C1FieldActivityMaintenance';
        $url = 'http://xxx.xx.x.xx:xxxx/services/Activity?wsdl';
        $client = new Client(); // Create the Guzzle Client        
        $response = $client->post($url, [         
                                    'headers' => [           
                                     'SOAPAction' => $action, // Add the action              
                                     'Content-Type' => 'text/xml'          ],          
                                     'body' => $xmlrequest // Put the xml in the body        
                                      ]);             // Return the response body as string  
            if ($response) {
                    return $response->getBody()->getContents();
            }else{
                    return $response->json(['pesan'=>'not connet']);
            }
    }

when i test it in postman, i got error like this :

<?xml version="1.0" ?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
    <SOAP-ENV:Body >
        <SOAP-ENV:Fault  >
            <faultcode>SOAP-ENV:Client</faultcode>
            <faultstring>Client Error</faultstring>
            <detail>
                <ResponseStatus>F</ResponseStatus>
                <ResponseCode>2005</ResponseCode>
                <ResponseText>Required field &apos;C1FieldActivityMaintenance.C1FieldActivityMaintenanceService.C1FieldActivityMaintenanceDetails.FACharacteristics.FACharacteristicsRow.Sequence&apos; not found in request</ResponseText>
                <ResponseData text="Required field &apos;C1FieldActivityMaintenance.C1FieldActivityMaintenanceService.C1FieldActivityMaintenanceDetails.FACharacteristics.FACharacteristicsRow.Sequence&apos; not found in request"  category="11011"  numParm="1"  parm1="C1FieldActivityMaintenance.C1FieldActivityMaintenanceService.C1FieldActivityMaintenanceDetails.FACharacteristics.FACharacteristicsRow.Sequence"  number="2005"  />
            </detail>
        </SOAP-ENV:Fault>
    </SOAP-ENV:Body >
</SOAP-ENV:Envelope>

it needs C1FieldActivityMaintenance, C1FieldActivityMaintenanceService, C1FieldActivityMaintenanceDetails, FACharacteristics, and FACharacteristicsRow. In my xml below i have put it, but it's still not working. How to fix this error?



via Chebli Mohamed

Aucun commentaire:

Enregistrer un commentaire