Importar ordenes de compra desde excel via DI API

Bueno, continuando con la programacion en vba, hoy quiero mostrarles como se puede importar un documento (en este caso orden de compra) a SAP usando una hoja de excel y unas pocas lineas de codigo.

Para ver los pasos previos (necesarios para que funcione el codigo), deben mirar el primer post;

Programar una macro para importar desde excel usando la DI API

Vamos a comenzar abriendo MS Excel y a llenar los datos como se muestra en esta imagen (los titulos los pueden colocar a su gusto). El boton no es necesario que lo agreguen aun.

instantánea22

Una vez colocado esos datos (obviamente con los codigos de su compañia), vamos a la ventana de macros y pegamos el siguiente codigo.

Acto seguido, volvemos a excel y agregamos un boton de formulario en la hoja desde la pestaña programador –> insertar –> controles de formulario

instantánea23

Una vez agregado el boton, debemos asignarle la macro para que ejecute el codigo que acabamos de escribir.

instantánea24

instantánea25

Y eso es todo, ahora solo basta con presionar el boton que agregamos y asignamos a la macro, esperar e ir a visualizar a SAP si se creo nuestra OC (Si tienen algun transaction validando campos obligatorios no funcionará al 100% ya que no están incluidos sus campos…ojo con eso.).

instantánea26

Si les aparece el mensaje “OK”, quiere decir que se cargó correctamente el documento, de lo contrario aparecerá el mensaje de error correspondiente. Ahora solo basta ir a SAP B1 y revisar el documento.

instantánea27

Y con eso, termina esta publicacion.

Saludos a todos los lectores.

CC BY-NC-ND 4.0 Importar ordenes de compra desde excel via DI API by QualityInfoSolutions is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.

You may also like...

46 Responses

  1. Javier dijo:

    Hola,

    Al intentar ejecutar la macro me marca el error -10 el nombre del recurso especificado no se encuentra en el archivo de imagen

    algo que me falte?

  2. Alexander dijo:

    Hola, muy buen día, copio tal cual el código y me da un error: El componente ActiveX no pudo crear el objeto.
    Ya revisé en la seguridad de excel y si tiene habilitado las funcionalidades ActiveX.
    Estoy usando Excel 2016 y mi sistema es SAP B1 9.2
    Muchas gracias de antemano!

  3. Luis dijo:

    Estimado:
    Necesito crear una orden de compra por servicio, que debo modificar en el codigo que tienes acá? .
    Saludos,
    Luis

  4. Julio Cesar dijo:

    Estimado:

    El ejemplo que nos muestras es para Ordenes de Compras, será factible hacerlo con Facturas de Proveedores.
    en el codigo esta linea es la que seleccionas el tipo de documento de marketing a usar.
    Set vDoc = oCompany.GetBusinessObject(oPurchaseOrders)
    mi pregunta es para una factura de proveedores que opcion selecciono
    Set vDoc = oCompany.GetBusinessObject(?????????)

    Gracias.

  5. Wuenceslao dijo:

    Hola, se podrian subir mas de una orden de compra con este scrip?

  6. Luis Guzhñay dijo:

    Buenas tardes estimados.
    Si quisiera solo consultar los datos de un cliente de la table OCRD seria asi?
    Set vDoc = oCompany.GetBusinessObject(OCRD)

  7. Luis Guzhnay dijo:

    Necesito obtener la informacion del socio de negocio enviando usando como filtro el id del socio, es una consulta sencilla pero yo que recien estoy aprendiendo se me complica. Por favor si pueden darme algun indicio de como hacerlo les agradeceria mucho.

  8. Enrique dijo:

    Estimados, si en el detalle del documento tengo campos de usuario como los puedo agregar, no aparecen disponibles?

    Saludos Cordiales

  9. Dario Bustillos dijo:

    Hola Felipe me sale el siguiente mensaje: Error de Compilacion: No se ha definido el tipo definido por el usuario.

    Que puede ser?, gracias por tu ayuda.

  10. Martin de Loera dijo:

    Muy buenas tardes

    Estoy muy interesado intentando echar andar esto pero me manda error:
    Se ha producido el error ‘429’ en tiempo de Ejecucion…. El componente ActiveX no puede crear el objeto.

    Alguien ha tenido este mismo error?

    Disculpen ustedes la molestia

Agregar un comentario

Su dirección de correo no se hará público. Los campos requeridos están marcados *

Contáctenos