Estoy intentando crear un nuevo registro en Salesforce utilizando la API de PHP Toolkit 20.0. El objeto tiene un campo de relación maestro-detalle y, cada vez que intento crear un nuevo registro en este objeto, aparece un error que indica que: "Falta el campo obligatorio: [nombre_campo__c]". Estoy pasando el ID de Salesforce de 18 dígitos a ese campo, por lo que no entiendo por qué cree que falta.
$payment = new stdclass();
$payment->Bill_Amount__c = sprintf("%.2f", (int)$billamount);
$payment->Customer_Name__c = $debitcustname;
$payment->Student__c = $contact->records[0]->Id;
$payment->Transaction_Date__c = $transactiondate;
$createResponse = $sf->create($payment, 'Student_Payment__c');
Cuando var_dump $ pago, obtengo el siguiente objeto que me parece correcto:
object(stdClass)#7 (8) {
["Student__c"]=>
string(18) "0033D00000NGoNNQA1"
["Bill_Amount__c"]=>
string(6) "100.00"
["Customer_Name__c"]=>
string(6) "SAMUEL"
["Transaction_Date__c"]=>
string(20) "2017-01-01T00:00:00Z"
}
También revisé mi archivo wsdl.xml y el campo, Student__c, está presente.
<element name="Student__c" nillable="true" minOccurs="0" type="tns:ID"/>
¿Qué estoy haciendo mal aquí?
2 respuestas
Resultó que el problema era que el primer argumento para el método de creación debe ser una matriz. Envolver la variable de pago $ entre paréntesis solucionó el problema.
$payment = new stdclass();
$payment->Bill_Amount__c = sprintf("%.2f", (int)$billamount);
$payment->Customer_Name__c = $debitcustname;
$payment->Student__c = $contact->records[0]->Id;
$payment->Transaction_Date__c = $transactiondate;
$createResponse = $sf->create([$payment], 'Student_Payment__c');
¿Ha intentado crear manualmente el registro a través de Workbench o Salesforce Dev Console?
Alternativamente, crearía un registro de depuración en Salesforce y luego depuraría el activador de inserción anterior para el objeto Student_Payment__c.
Lo que está haciendo debería estar técnicamente funcionando, podría ser algún código dentro de un activador de Salesforce que está causando un problema o una configuración de regla de validación para el objeto personalizado.
Preguntas relacionadas
Nuevas preguntas
php
PHP es un lenguaje de secuencias de comandos interpretado, dinámico, orientado a objetos y ampliamente utilizado, diseñado principalmente para el desarrollo web del lado del servidor. Se utiliza para preguntas sobre el lenguaje PHP.