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 'C1FieldActivityMaintenance.C1FieldActivityMaintenanceService.C1FieldActivityMaintenanceDetails.FACharacteristics.FACharacteristicsRow.Sequence' not found in request</ResponseText>
<ResponseData text="Required field 'C1FieldActivityMaintenance.C1FieldActivityMaintenanceService.C1FieldActivityMaintenanceDetails.FACharacteristics.FACharacteristicsRow.Sequence' 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