[OCRD.State2] , 'El valor enlazado 15 no existe'

Buenas tardes,

Un placer compartir mi problema en esta gran comunidad de SAP aunque sinceramente me hubiese gustado que me saliera a la primera, pero son cosas que estoy seguro que a todos nos ha pasado, trabajo como Analista Programador y la empresa donde laboro, ha realizado una migración de SAP BO 9.0 a 9.3; estoy teniendo un problema al momento de realizar la actualización de los socios de negocio, no me permite realizar la transacción ya que me emite el siguiente error " [OCRD.State2] , ‘El valor enlazado 15 no existe’ ", he verificado y ya existe registros antiguos con ese valor , agradecería mucho su pronta ayuda, gracias.

adjunto codigo:

    public static int ClienteActualizarFacturacion(SAPbobsCOM.Company mobjCnn, string strCodigoSuiza, string strNombre, string strNroDocumento, int intGrupo, 
        int intCondicionPago, string strTipoPersona, string strNombreIngles, string strTelefono1, string strTelefono2, string strCelular, string strCorreo,
        string strComentario, string strTipoDocumento, bool blnSeguro, bool blnReferencia, bool blnParticulares, bool blnCompania, string strPaterno, 
        string strMaterno, string strNombres, string[] strArray, out string strMensaje)
    {
        // ByVal strArray As String
        SAPbobsCOM.BusinessPartners objCliente;
        long lngResultado;
        string strCorrelativo = string.Empty;
        string strCodigoSAP = string.Empty;
        int intFila;
        int intRegistro = 0;

        int iResult = 0;
        strMensaje = string.Empty;

        try
        {
            SAPbobsCOM.Recordset oRecordsetCodigo = (SAPbobsCOM.Recordset)mobjCnn.GetBusinessObject(BoObjectTypes.BoRecordset);
            string queryCodigo = string.Format("exec [dbo].[up_OCRD_CodigoSAP] {0}", strCodigoSuiza);
            //string queryCodigo = string.Format("exec [dbo].[up_OCRD_CodigoSAP]");
            oRecordsetCodigo.DoQuery(queryCodigo);
            strCodigoSAP = oRecordsetCodigo.Fields.Item(0).Value.ToString();


            int ntotal = strArray.Length;
            int ncolumnas = 8;
            int nfilas = ntotal / ncolumnas;

            //intFila = Math.Ceiling((double)(UBound(strArray) + 1) / (double)8);
            //intFila = Math.Ceiling((double)(UBound(strArray) + 1) / (double)8);

            //strCodigoSAP = fxObtenerCodigoSAPCliente[strCodigoSuiza];
            if ((strCodigoSAP ) == "NO EXISTE")
            {
                iResult = 2;
                strMensaje = "No existe el código del SAP.";
                return iResult;
            }
            objCliente = mobjCnn.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oBusinessPartners);
            mobjCnn.StartTransaction();
            {
                var withBlock = objCliente;
                withBlock.PriceListNum = -1;
                withBlock.CardCode = strCodigoSAP;
                withBlock.CardType = SAPbobsCOM.BoCardTypes.cCustomer;
                withBlock.CardName = strNombre;
                withBlock.CardForeignName = strNombreIngles;
                withBlock.GroupCode = intGrupo;
                withBlock.PayTermsGrpCode = intCondicionPago;
                withBlock.FederalTaxID = strNroDocumento;
                withBlock.Currency = "##";
                withBlock.UserFields.Fields.Item("U_BKP_CodSuiza").Value = strCodigoSuiza;
                withBlock.UserFields.Fields.Item("U_BPP_BPTP").Value = strTipoPersona;
                if ((strTelefono1 ?? "") != (string.Empty ?? ""))
                    withBlock.Phone1 = strTelefono1.Trim();
                if ((strTelefono2 ?? "") != (string.Empty ?? ""))
                    withBlock.Phone2 = strTelefono2.Trim();
                if ((strCelular ?? "") != (string.Empty ?? ""))
                    withBlock.Cellular = strCelular.Trim();
                if ((strCorreo ?? "") != (string.Empty ?? ""))
                    withBlock.EmailAddress = strCorreo.Trim();
                if ((strComentario ?? "") != (string.Empty ?? ""))
                    withBlock.FreeText = strComentario.Trim();
                withBlock.Properties[1] = blnSeguro == true ? SAPbobsCOM.BoYesNoEnum.tYES : SAPbobsCOM.BoYesNoEnum.tNO;
                withBlock.Properties[2] = blnReferencia == true ? SAPbobsCOM.BoYesNoEnum.tYES : SAPbobsCOM.BoYesNoEnum.tNO;
                withBlock.Properties[3] = blnParticulares == true ? SAPbobsCOM.BoYesNoEnum.tYES : SAPbobsCOM.BoYesNoEnum.tNO;
                withBlock.Properties[4] = blnCompania == true ? SAPbobsCOM.BoYesNoEnum.tYES : SAPbobsCOM.BoYesNoEnum.tNO;
                if ((strTipoDocumento ?? "") != (string.Empty ?? ""))
                    withBlock.UserFields.Fields.Item("U_BPP_BPTD").Value = strTipoDocumento;
                if ((strPaterno ?? "") != (string.Empty ?? ""))
                    withBlock.UserFields.Fields.Item("U_BPP_BPAP").Value = strPaterno;
                if ((strMaterno ?? "") != (string.Empty ?? ""))
                    withBlock.UserFields.Fields.Item("U_BPP_BPAM").Value = strMaterno;
                if ((strNombres ?? "") != (string.Empty ?? ""))
                    withBlock.UserFields.Fields.Item("U_BPP_BPNO").Value = strNombres;

                //withBlock.UserFields.Fields.Item("U_BKP_TipoCuenta").Value = "001";
                if (!(strArray == null))
                {
                    intRegistro = 0;
                    //int nfilas = ntotal / ncolumnas;

                    //for (int i = 0, loopTo = nfilas; i <= loopTo; i++)
                        for (int i = 0; i < nfilas; i++)
                        //for (int i = 0, loopTo = intFila - 1; i <= loopTo; i++)
                        { 
                        if ((strArray[intRegistro] ?? "") != (string.Empty ?? ""))
                        {
                            if (nfilas == 0)
                                //withBlock.Addresses.AddressName = (strArray[intRegistro] ?? "") == (string.Empty ?? "") ? "Dirección Fiscal" : strArray[intRegistro];
                            withBlock.Addresses.AddressName = (strArray[intRegistro] ) == (string.Empty) ? "Dirección Fiscal" : strArray[intRegistro];
                            else
                            withBlock.Addresses.AddressName = (strArray[intRegistro] ) == (string.Empty ) ? "Dirección " + Convert.ToString(nfilas) : strArray[intRegistro];
                            
                            if ((strArray[intRegistro + 6] ) == "F")
                                withBlock.Addresses.AddressType = SAPbobsCOM.BoAddressType.bo_BillTo;
                            else if ((strArray[intRegistro + 6]) == "D")
                                withBlock.Addresses.AddressType = SAPbobsCOM.BoAddressType.bo_ShipTo;
                            // verificar este codigo
                            withBlock.Addresses.Street = strArray[intRegistro + 1]; // Avenida
                            if ((strArray[intRegistro + 6] ) != "D")
                                withBlock.Addresses.Block = strArray[intRegistro + 2];// Distrito
                            withBlock.Addresses.City = strArray[intRegistro + 3]; // Provincia
                           // withBlock.Addresses.State = null;// strArray[intRegistro + 4]; // Departamento
                            ///withBlock.Addresses.Country = (strArray[intRegistro + 5] ?? "") == (string.Empty ?? "") ? "PE" : strArray[intRegistro + 5];
                            withBlock.Addresses.Country = (strArray[intRegistro + 5] ) == (string.Empty ) ? "PE" : strArray[intRegistro + 5];
                            withBlock.Addresses.ZipCode = strArray[intRegistro + 7];
                            // fin de verificacion
                            withBlock.Addresses.Add();
                        }
                        intRegistro = intRegistro + 8;
                    }
                }
                lngResultado = withBlock.Update();
                if (lngResultado < 0)
                {
                    //mobjCnn.GetLastError(mintError, mstrError);
                    //if (mobjCnn.InTransaction)
                    //    mobjCnn.EndTransaction(SAPbobsCOM.BoWfTransOpt.wf_RollBack);
                    //return Conversions.ToString(mintError + " - ") + mstrError;

                    int iError;
                    string sErrorMensaje;
                    mobjCnn.GetLastError(out iError, out sErrorMensaje);

                    try
                    {
                        mobjCnn.EndTransaction(SAPbobsCOM.BoWfTransOpt.wf_RollBack);
                    }
                    catch { }

                    iResult = iError;
                    strMensaje = sErrorMensaje;


                }
                else
                {            

                    mobjCnn.EndTransaction(SAPbobsCOM.BoWfTransOpt.wf_Commit);
                    iResult = 1;
                    //if (blnDesconectar == true)
                    //    mobjCnn.Disconnect();
                    strArray = null;
                    strMensaje = "OK";

                }
            }
           
        }
        catch (Exception ex)
        {
            //mintError = 1;
            //mstrError = ex.Message;
            //if (mobjCnn.InTransaction)
            //    mobjCnn.EndTransaction(SAPbobsCOM.BoWfTransOpt.wf_RollBack);
            //return mstrError;

            try
            {
                mobjCnn.EndTransaction(SAPbobsCOM.BoWfTransOpt.wf_RollBack);
            }
            catch { }

            iResult = 2;
            strMensaje = ex.Message;
        }
        return iResult;
    }

Hola @Arturo1010
Por favor pasa por la sección de Presentaciones, es una política del foro de obligatorio cumplimiento.
Para tu problema lo siguiente te puede ser util.