Problema con campo de texto en SDK UI_API

Muy buen dia,

Tengo un inconveniente con un campo de texto que estoy creando en el maestro de articulos por medio de UI_API. Ya tengo el campo creado, pero al momento de ingresar algún texto, me lo guarda para todos los maestros de los artículos y si debo cambiarlo y actualizarlo en otro articulo me lo cambia en todos, ademas de eso no veo en donde esta almacenado ese campo, es decir, si me coloco encima de él y habilito la información del sistema para ver la tabla y el nombre del campo me aparece un #00000293,“Nombredecampo” y si lo busco por medio de un query no aparece en la tabla oitm.

Agradezco cualquier ayuda con esto, soy nuevo en el sdk y me gustaría aprender.

Hola compañero.

La programación no es lo mio pero sin duda, para que puedas recibir un poco de apoyo, sería mucho mejor si mencionas el código de programación que estás utilizando, de esta manera se podrá analizar y otorgar las respectivas sugerencias.

Seguimos atentos.

Saludos.

Buenas tardes @eduardo_buitr

De acuerdo a lo que comentas y a reserva de que proporciones más información (imágenes), es posible que lo que estés visualizando sea simplemente el campo creado desde UI API con la información introducida, sin embargo, dicho campo necesita estar vinculado a un campo de la Base de Datos para que se guarde propiamente la información.

En las propiedades de tu EditText, en la sección “DataBind” …
1.- En la propiedad “DataSource” debes asignar la tabla de SAP a la que estará vinculado, por ejemplo si es la de Facturas de Proveedores deberá ser “OPCH”, si es la de Entradas de Mercancías de Proveedores deberá ser “OPDN”, etc.
2.- En la propiedd “Alias” deberás especificar el campo de usuario al que pretendes vincular esta información, es decir, donde se guardará en la Base de Datos, por ejemplo “U_Referencia”, solo por mencionar algún nombre.

Imagen ejemplo:
Imagen_Campo_UIAPI

Espero esta información te ayude un poco a resolver tu requerimiento.

Saludos
SAP B1, v9.2 PL03
México

2 Me gusta

Muchas gracias por responder. Efectivamente hice lo que me recomendaste y el inconveniente se ha superado, ahora tengo otro tema con el mismo campo.
Te comento: vincule el campo de esta manera:

_EditText.DataBind.SetBound(True, “OCRD”, “U_Prueba”)

asi le doy formato y de una vez lo vinculo como indicaste.

el tema ahora es que cuando selecciono algo de ese ChooseFromList no me lo muestra el el campo. te comparto las imagenes para hacerme entender.

image

En la imagen anterior puedes ver el campo con el choosefromList y la ventana que se muestra, pero al seleccionar alguna de las opciones no la muestra en el campo. Queda vació.

El codigo que estoy utilizando es este:

mira, creo el control del choosefromlist con:

REM Creación de ChoosefromList

        _ItemRef = _Form.Items.Item("75")
        _Item = _Form.Items.Add("U_ChlCap", SAPbouiCOM.BoFormItemTypes.it_EDIT)
        _Item.Top = _ItemRef.Top
        _Item.Left = _ItemRef.Left + 150
        _Item.Width = _ItemRef.Width
        _Item.Height = _ItemRef.Height
        _Item.FromPane = "6"
        _Item.ToPane = "6"

        REM propiedades del ChooseFromList

        _CFLCreationParams = _APP.CreateObject(SAPbouiCOM.BoCreatableObjectType.cot_ChooseFromListCreationParams)
        _CFLCreationParams.MultiSelection = False
        _CFLCreationParams.ObjectType = "40"
        _CFLCreationParams.UniqueID = "CflCap"

        _ChooseFromLists = _Form.ChooseFromLists
        _ChooseFromList = _ChooseFromLists.Add(_CFLCreationParams)


        _EditText = _Form.Items.Item("U_ChlCap").Specific

        _EditText.DataBind.SetBound(True, "OCRD", "U_Prueba")

        _EditText.ChooseFromListUID = "CflCap"
        _EditText.ChooseFromListAlias = "PymntGroup"

luego capturo el evento

Case SAPbouiCOM.BoEventTypes.et_CHOOSE_FROM_LIST
_BubbleEvent = SeleccionaChooseFromList()

esta es la función que estoy llamando: en donde filtro que sea cuando el id del item sea U_ChlCap, ejecute la otra función PinchaChooseFromList

Private Function SeleccionaChooseFromList() As Boolean
Try

        _BubbleEvent = True

        Select Case _Evento.ItemUID
            Case "U_ChlCap"
                _BubbleEvent = PinchaChooseFromList()

        End Select

    Catch ex As Exception
        _APP.StatusBar.SetText(ex.Message, SAPbouiCOM.BoMessageTime.bmt_Short, SAPbouiCOM.BoStatusBarMessageType.smt_Error)
        _BubbleEvent = False
    End Try

    Return _BubbleEvent
End Function

En la funcion pinchachoosefromlist realizo la captura de la opcion escogida y la estoy mostrando en un mensaje de SAP. Es aca en donde no he encontrado la forma de mostrarlo en el campo del choosefromlist, deberia ser despues del mensaje de SAP.

Private Function PinchaChooseFromList() As Boolean
Try

        _BubbleEvent = True

        If Not _Evento.BeforeAction Then

            _DataTable = CargaChooseFromList(_Evento, _Form)

            If Not _DataTable Is Nothing Then
                Dim val As String = String.Empty
                Try
                    val = _DataTable.GetValue("PymntGroup", 0)
                    _APP.MessageBox(val)
                    _Form.DataSources.UserDataSources.Item("").ValueEx
                Catch ex As Exception
                    _APP.MessageBox(ex.Message)
                    _BubbleEvent = False
                End Try

            End If

        End If
        _Form.Mode = SAPbouiCOM.BoFormMode.fm_UPDATE_MODE
    Catch ex As Exception
        _APP.StatusBar.SetText(ex.Message, SAPbouiCOM.BoMessageTime.bmt_Short, SAPbouiCOM.BoStatusBarMessageType.smt_Error)
        _BubbleEvent = False
    End Try

    Return _BubbleEvent

End Function

Muchas gracias por tu tiempo y ayuda, espero me puedas orientar en lo que debo realizar.

2 posts fueron trasladados a un nuevo tema: Documentación UI API y DI API para PHP?

El campo del ChosseFromList que tienes vinculado a un Objeto “User Data Source” que imaginemos que se llama “UD_ConPago”, en esta parte del código especifica el nombre de dicho User Data Source y asigna el valor que guardas en la variable “val” …
_Form.DataSources.UserDataSources.Item("UD_ConPago").ValueEx = val
Considero que de esta forma te vincula el dato y lo muestra en el control que corresponde

Espero te sea útil

Saludos
SAP B1 v9.2 PL03
México

2 Me gusta

Muchas gracias por tu respuesta. ha sido de gran ayuda.

Este tema se cerró automáticamente 7 días después del último post. No se permiten nuevas respuestas.