cancel
Showing results for 
Search instead for 
Did you mean: 

Actualizar CardCode - SDK DI API

Former Member
0 Kudos

Buen Día!

Hay alguna forma o es posible modificar el CardCode de un Socio de Negocio desde el SDK,

hasta el momento solo me actualiza campos como el CardName, CardType, etc, pero cuando actualizo el CardCode me arroja el error -2035, que según vi en la documentación es por que "Data Source - Duplicate Keys"   el cardCode esta Duplicado.

Aquí les dejo el código (esta en php):

<?php

try {

    if(!$sap->Connected)

        $sap->Connect();

    if($sap->Connected) {

        $oBO = $sap->GetBusinessObject(2);

        if ($oBO->GetByKey('CL-7777776') == true) {

            $oBo->CardCode='CL-7777777';

            $VALOR = $oBo->Add();

            if($VALOR != 0)

                echo 'ERROR : ' . $ERR. '<br>';

        }

        $sap->Disconnect();

    }

    else {

        echo 'No Conectado';

    }

}

catch (Exception $e) {

    echo 'ERROR: <br />' . $e  . '<br />';

    echo $sap->GetLastErrorDescription() . '<br />';

}

?>

Accepted Solutions (0)

Answers (3)

Answers (3)

Former Member
0 Kudos

El método Add lo utilice por que el Update no me funciono.

Former Member
0 Kudos

Me podrias decir que error te muestra al utilizar el metodo update

Former Member
0 Kudos

El error no lo captura el try y catch de PHP, el error que muestra el log es el siguiente y es justo en la linea del UPDATE:

     PHP Fatal error:  Call to undefined method stdClass::Update()

Former Member
0 Kudos

Puedes intentar actualizar otro campo y chequear si te da el mismo error

Former Member
0 Kudos

Jhonatan:

El di api solo modifica lo que te permite modificar por pantalla.

No se puede modificar ningun campo que es llave en la tabla.

El cardcode es llave de la tabla socio de negocios por lo tanto no sera posible el modificarlo.

Lo que puedes hacer es si no tiene documentos asociados es eliminarlo y volver acrearlo y si tiene movimientos asociados es bloquearlo

felipe_loyolarodriguez
Active Contributor
0 Kudos

No necesariamente debe ser por pantalla

Ejemplo el folio de las facturas de cliente, no puedes modificarlo por pantalla, pero si por DI API.

Saludos

Former Member
0 Kudos

Tienes razón el folio te lo permite modificar, pero eso debe estar entre las excepcion(es), pero por lo general es como lo dije anteriormente.

Former Member
0 Kudos

¿Entiendo que el socio de negocios no tiene ningún documento asociado?

Former Member
0 Kudos

Es Correcto Fernando, El socio de Negocios no tiene asociado ningún documento.

Former Member
0 Kudos

Jhonatan:

En el codigo estas utilizando el metodo Add, que se utilizar para agregar, y lo que tu necesitas es utilizar el metodo update que es para actualizar

felipe_loyolarodriguez
Active Contributor
0 Kudos

El CardCode es el campo llave la tabla OCRD por lo cual debe ser único por cada registro sea cliente, proveedor o lead.

Si el socio de negocio no tiene ningún movimiento puedes cambiar el CardCode.

Saludos

Felipe

Former Member
0 Kudos

Por pantalla se deja modificar sin ningún problema, excepto cuando tiene documentos asociados.

Ahora cuando lo hago por el sdk, me lanza ese erro(-2035), no se supone que si por pantalla se deja modificar por sdk tambien??, ahí esta el problema, o no se si se deba hacer algo antes de actualizar el CardCode.