18
23/2/2015 Código de Retorno: Carga Masiva de anexos en SAP http://codigoderetorno.blogspot.com/2012/11/cargamasivadeanexosensap.html 1/18 Blog dedicado a la programación en SAP R/3 Código de Retorno lunes, 3 de diciembre de 2012 Carga Masiva de anexos en SAP Cuando creamos anexos, el código de la anterior entrada esta limitado a un solo archivo que debe ser elegido por el usuario pero ¿ Y si necesitamos cargar 1000 pdf o 10000...o 100000!!? con la clase CL_GOS_DOCUMENT_SERVICE anexaríamos de uno en uno....demasiado tiempo. Escenario: Tenemos 100000 facturas en PDF y el cliente quiere anexarlas a los documentos contables correspondientes, el nombre del archivo pdf sera el numero de factura. Por ejemplo: la Factura 0000157910 es el archivo 0000157910.PDF. Lo primero de todo, necesitamos crear una relación entre los archivos que van a ser indexados y los objetos de negocio en sap ( solicitudes de compra, pedidos de compra, pedidos de venta documentos contables ) . En este caso, el nombre del archivo a anexar coincidirá con el nº de factura que referencia el documento contable. vamos a utilizar una Seleccionar idioma David Rueda Seguir 51 Ver todo mi perfil Datos personales 4 abap (18) abap orientado a objetos (3) abap_development_tools (5) adt (5) aie (5) alv (3) anexos (5) as_abap (5) attachment (5) bapis (3) eclipse (6) excel (3) GOS (5) GuiXT (9) Etiquetas android (1) ANST (1) ANST_SEARCH_TOOL (1) autocompletado (1) avisos de calidad (1) ayuda busqueda (2) bapi (2) BAPI_SALESORDER_CHANGE. append (1) campos a medida (2) cast_error (1) CL_GOS_DOCUMENT_SERVICE (2) code completion (1) content server (2) conversión de unidades (1) crystal Report (1) dispositivos de salida (1) drivers (2) dump (2) DYNP_VALUES_UPDATE (2) estrucutras de control (1) EXTENSIONIN (1) f4_help_variant (2) F4IF_START_VALUE_REQUEST (2) foros (1) gr55 (1) 2 Más Siguiente blog» Crear un blog Acceder

Código de Retorno_ Carga Masiva de Anexos en SAP

  • Upload
    fizuma

  • View
    173

  • Download
    3

Embed Size (px)

DESCRIPTION

SAP

Citation preview

  • 23/2/2015 CdigodeRetorno:CargaMasivadeanexosenSAP

    http://codigoderetorno.blogspot.com/2012/11/cargamasivadeanexosensap.html 1/18

    BlogdedicadoalaprogramacinenSAPR/3

    CdigodeRetorno

    lunes,3dediciembrede2012

    CargaMasivadeanexosenSAP

    Cuandocreamosanexos,elcdigodelaanteriorentradaestalimitadoaunsoloarchivoquedebeserelegidoporelusuarioperoYsinecesitamoscargar1000pdfo10000...o100000!!?conlaclaseCL_GOS_DOCUMENT_SERVICEanexaramosdeunoenuno....demasiadotiempo.

    Escenario:Tenemos100000facturasenPDFyelclientequiereanexarlasalosdocumentoscontablescorrespondientes,elnombredelarchivopdfseraelnumerodefactura.

    Porejemplo:laFactura0000157910eselarchivo0000157910.PDF.

    Loprimerodetodo,necesitamoscrearunarelacinentrelosarchivosquevanaserindexadosylosobjetosdenegocioensap(solicitudesdecompra,pedidosdecompra,pedidosdeventadocumentoscontables).

    Enestecaso,elnombredelarchivoaanexarcoincidirconelndefacturaquereferenciaeldocumentocontable.vamosautilizaruna

    Seleccionaridioma

    DavidRueda

    Seguir 51

    Vertodomiperfil

    Datospersonales

    4

    abap (18) abap orientado a objetos(3)abap_development_tools(5)adt (5) aie(5) alv (3) anexos (5)

    as_abap (5)attachment(5)

    bapis (3)

    eclipse(6) excel(3)

    GOS (5) GuiXT (9)

    Etiquetas

    android (1) ANST (1)

    ANST_SEARCH_TOOL (1)

    autocompletado (1) avisosde calidad

    (1) ayuda busqueda (2) bapi (2)BAPI_SALESORDER_CHANGE.append (1)

    campos a medida (2) cast_error (1)CL_GOS_DOCUMENT_SERVICE (2) codecompletion (1) content server (2) conversin deunidades(1) crystalReport (1) dispositivosde salida (1)

    drivers (2) dump (2) DYNP_VALUES_UPDATE(2) estrucutrasde control (1)EXTENSIONIN (1) f4_help_variant (2)F4IF_START_VALUE_REQUEST (2) foros (1)

    gr55 (1)

    2 Ms Siguienteblog Crearunblog Acceder

    http://codigoderetorno.blogspot.com/http://codigoderetorno.blogspot.com/search/label/gr55http://codigoderetorno.blogspot.com/search/label/dispositivos%20de%20salidahttp://codigoderetorno.blogspot.com/search/label/androidhttp://codigoderetorno.blogspot.com/search/label/content%20serverhttp://codigoderetorno.blogspot.com/search/label/eclipsehttp://codigoderetorno.blogspot.com/search/label/drivershttp://codigoderetorno.blogspot.com/search/label/adthttp://codigoderetorno.blogspot.com/search/label/anexoshttp://codigoderetorno.blogspot.com/search/label/alvhttp://feeds.feedburner.com/CdigoDeRetornohttps://plus.google.com/u/0/111683068712698730474/postshttp://codigoderetorno.blogspot.com/search/label/f4_help_varianthttp://codigoderetorno.blogspot.com/search/label/CL_GOS_DOCUMENT_SERVICEhttp://codigoderetorno.blogspot.com/search/label/conversi%C3%B3n%20de%20unidadeshttp://codigoderetorno.blogspot.com/search/label/abap_development_toolshttp://codigoderetorno.blogspot.com.es/2012/11/clgosdocumentservice.htmlhttp://www.linkedin.com/pub/david-rueda-barr%C3%B3n/35/918/16bhttp://codigoderetorno.blogspot.com/search/label/campos%20a%20medidahttp://codigoderetorno.blogspot.com/search/label/abaphttp://codigoderetorno.blogspot.com/search/label/as_abaphttps://www.facebook.com/CodigoDeRetornohttp://codigoderetorno.blogspot.com/search/label/F4IF_START_VALUE_REQUESThttp://codigoderetorno.blogspot.com/search/label/DYNP_VALUES_UPDATEhttp://codigoderetorno.blogspot.com/search/label/aiehttp://codigoderetorno.blogspot.com/search/label/EXTENSIONINhttp://codigoderetorno.blogspot.com/search/label/bapishttp://codigoderetorno.blogspot.com/search/label/BAPI_SALESORDER_CHANGE.%20appendhttp://codigoderetorno.blogspot.com/search/label/dumphttp://feeds.feedburner.com/CdigoDeRetornohttp://codigoderetorno.blogspot.com/search/label/ANSThttp://4.bp.blogspot.com/-OXMq3HU0zQ4/UKITkt90vDI/AAAAAAAACNU/_R0yec2cx7s/s1600/monta%C3%B1a+de+papeles.jpghttps://plus.google.com/111683068712698730474http://codigoderetorno.blogspot.com/search/label/avisos%20de%20calidadhttp://codigoderetorno.blogspot.com/search/label/estrucutras%20de%20controlhttp://twitter.com/davidruedabhttp://codigoderetorno.blogspot.com/search/label/ayuda%20busquedahttp://codigoderetorno.blogspot.com/search/label/crystal%20Reporthttp://codigoderetorno.blogspot.com/search/label/abap%20orientado%20a%20objetoshttp://codigoderetorno.blogspot.com/search/label/GOSjavascript:void(0)http://codigoderetorno.blogspot.com/search/label/foroshttp://codigoderetorno.blogspot.com/search/label/excelhttps://plus.google.com/111683068712698730474http://codigoderetorno.blogspot.com/search/label/cast_errorhttp://codigoderetorno.blogspot.com/search/label/autocompletadohttp://codigoderetorno.blogspot.com/search/label/bapihttp://codigoderetorno.blogspot.com/search/label/attachmenthttp://codigoderetorno.blogspot.com/search/label/GuiXThttp://codigoderetorno.blogspot.com/search/label/ANST_SEARCH_TOOLhttp://codigoderetorno.blogspot.com/search/label/code%20completion

  • 23/2/2015 CdigodeRetorno:CargaMasivadeanexosenSAP

    http://codigoderetorno.blogspot.com/2012/11/cargamasivadeanexosensap.html 2/18

    muestrade6facturasenpdfparasimularlacarga.

    Comocasodeprueba,tenemosundirectorio"fuente"con6facturasenPDF.ElnombredelarchivoeselndefacturaycoincideconelcampoBKPFXBLNRdeldoc.contable.

    Elprogramaseguiralasiguientelogica:

    Leelosarchivosdeldirectorio"fuente"Buscalosdoc.contablesconBKPFXBLNRigualalnombredelarchivoSiexiste,anexaelarchivoaldoc.contableymueveelarchivoaldirectorio"procesados".Sinoexiste,dejaelarchivoeneldirectoriofuente

    ZCS_ATTACHMENT_PDFTOP:variablesestructurasytablasinternasglobales:

    *&**&IncludeZCS_ATTACHMENT_PDFTOP*&*TYPEPOOLS:abap.

    *&**&Tablas*&*TABLES:BKPF,LFA1,KNA1.

    *&**&Constantes*&*

    *&**&DATATYPES*&*TYPES:BEGINOFTYPES_FACTURAS,XBLNRTYPEBKPFXBLNR,"FacturaBELNRTYPEBKPFBELNR,"DocumentocontableBUKRSTYPEBKPFBUKRS,"Sociedad

    icm (5)ide (5)

    java (5)

    minisap (6)

    netweaver (5)

    pushbutton(3)

    REUSE_ALV_GRID_DISPLAY (3)

    sap(13) SapLogon (6) sapnotes (3)sap_netweaver(6)sapgui(7)

    scripts (3)

    servidorsap(6) snote(3)spad(3)

    H99PDSY_REPAIR_SMODILOG (1) Hana (1) HANA

    Cloud (1)HP(2)HRObjects adjustment (1)ides (1) image (1) impresora pdf (1)

    impresoras (2) Indigo (2) InputAssistant (2)inputscript (2) Juno (2) keywords (1)Kleper(2)libros(1) load_problems (1)Matchcode(2)me21n (1) me22n (1) me23n (1) ME_GUI_PO_CUST

    Badi (1) ME_PROCESS_PO_CUST (1)

    MM (1) MS_EXCEL_OLE_STANDARD_DAT (1)

    Notas de correccin (1) object (1)

    Objetos HR (1)OKI (2) oss (2) pdf (1) practicar (1)programacin(2) qm (1) qmel (1)QQMA0001(1)radiobutton(2) report painter (1) reportwriter (1)

    RSIRPIRL (1) RSUMOD_CHECK_NON_TADIR (1)

    sap gui (1)

    SAP_APPL (1) sap_movile (1)

    SAPRUPGM(1)

    SCN (1) script (2) SD (1)SD_SALESDOCUMENT_CREATE(1) se18 (1) se19. (1)

    SMODILOG (1)

    SPAU(2)SPDD (1) support portal (1) sybase (1)sybase_mobile_sdk (1) sybase_unwired_platform (1)

    TEXT_CONVERT_XLS_TO_SAP(1) trial (1)upload(2)user exit (1) ventas (1) waers (1) XEROX (2) Zebra(2)ZQQM(1)

    2015(2)

    2014(9)

    2013(21)

    2012(15)

    diciembre(2)

    GUIXT:Introduccin

    CargaMasivadeanexosenSAP

    noviembre(1)

    octubre(3)

    septiembre(2)

    agosto(2)

    julio(2)

    junio(3)

    Archivodelblog

    ConseguiraccesoaunservidorSAP

    ConseguiraccesoaunservidorSAP2parte

    Entradaspopulares

    http://codigoderetorno.blogspot.com/search/label/me23njavascript:void(0)http://codigoderetorno.blogspot.com/search/label/libroshttp://codigoderetorno.blogspot.com/search/label/Matchcodejavascript:void(0)http://codigoderetorno.blogspot.com/2012_08_01_archive.htmlhttp://codigoderetorno.blogspot.com/search/label/SCNhttp://codigoderetorno.blogspot.com/search/label/Sap%20Logonhttp://codigoderetorno.blogspot.com/search/label/imagejavascript:void(0)http://codigoderetorno.blogspot.com/search/label/sap_movilehttp://codigoderetorno.blogspot.com/search/label/SAPRUPGMhttp://codigoderetorno.blogspot.com/search/label/TEXT_CONVERT_XLS_TO_SAPhttp://codigoderetorno.blogspot.com/search/label/Junohttp://codigoderetorno.blogspot.com/search/label/ME_GUI_PO_CUST%20Badihttp://codigoderetorno.blogspot.com/search/label/sybase_unwired_platformhttp://codigoderetorno.blogspot.com/search/label/scriptshttp://codigoderetorno.blogspot.com/2012_07_01_archive.htmlhttp://codigoderetorno.blogspot.com/search/label/practicarhttp://codigoderetorno.blogspot.com/2012_06_01_archive.htmlhttp://codigoderetorno.blogspot.com/search/label/pushbuttonhttp://codigoderetorno.blogspot.com/search/label/me21nhttp://codigoderetorno.blogspot.com/search/label/impresorashttp://codigoderetorno.blogspot.com/search/label/InputAssistanthttp://codigoderetorno.blogspot.com/search/label/osshttp://codigoderetorno.blogspot.com/search/label/user%20exithttp://codigoderetorno.blogspot.com/search/label/scripthttp://codigoderetorno.blogspot.com/search/label/icmhttp://codigoderetorno.blogspot.com/search/label/servidor%20saphttp://codigoderetorno.blogspot.com/search/label/idehttp://codigoderetorno.blogspot.com/search/label/spadhttp://codigoderetorno.blogspot.com/search/label/me22nhttp://codigoderetorno.blogspot.com/search/label/report%20painterhttp://codigoderetorno.blogspot.com/search/label/Objetos%20HRhttp://codigoderetorno.blogspot.com/search/label/netweaverjavascript:void(0)javascript:void(0)http://codigoderetorno.blogspot.com/search/label/report%20writerhttp://codigoderetorno.blogspot.com/search/label/load_problemshttp://codigoderetorno.blogspot.com/search/label/sybasehttp://codigoderetorno.blogspot.com/search/label/Hanahttp://codigoderetorno.blogspot.com/search/label/MS_EXCEL_OLE_STANDARD_DAThttp://codigoderetorno.blogspot.com/search/label/H99PDSY_REPAIR_SMODILOGhttp://codigoderetorno.blogspot.com/search/label/Zebrahttp://codigoderetorno.blogspot.com/search/label/MMjavascript:void(0)http://codigoderetorno.blogspot.com/2012/07/conseguir-acceso-un-servidor-sap-2.htmlhttp://codigoderetorno.blogspot.com/search/label/minisaphttp://codigoderetorno.blogspot.com/2012/11/carga-masiva-de-anexos-en-sap.htmlhttp://codigoderetorno.blogspot.com/search/label/radiobuttonhttp://codigoderetorno.blogspot.com/search/label/SDhttp://codigoderetorno.blogspot.com/2012_10_01_archive.htmlhttp://codigoderetorno.blogspot.com/search/label/HR%20Objects%20adjustmenthttp://codigoderetorno.blogspot.com/search/label/HANA%20Cloudhttp://codigoderetorno.blogspot.com/search/label/ventashttp://codigoderetorno.blogspot.com/search?updated-min=2015-01-01T00:00:00-08:00&updated-max=2016-01-01T00:00:00-08:00&max-results=2http://codigoderetorno.blogspot.com/search/label/sapguihttp://codigoderetorno.blogspot.com/search/label/RSUMOD_CHECK_NON_TADIRhttp://codigoderetorno.blogspot.com/search/label/SAP_APPLhttp://codigoderetorno.blogspot.com/search/label/uploadhttp://codigoderetorno.blogspot.com/search/label/saphttp://codigoderetorno.blogspot.com/search/label/QQMA0001http://codigoderetorno.blogspot.com/search/label/qmhttp://codigoderetorno.blogspot.com/search/label/Notas%20de%20correcci%C3%B3nhttp://codigoderetorno.blogspot.com/2012/06/entrar-en-el-mundo-de-sap-no-es-si.htmlhttp://codigoderetorno.blogspot.com/search/label/ME_PROCESS_PO_CUSThttp://codigoderetorno.blogspot.com/search/label/Indigohttp://codigoderetorno.blogspot.com/search/label/inputscripthttp://codigoderetorno.blogspot.com/search/label/pdfhttp://codigoderetorno.blogspot.com/search/label/programaci%C3%B3nhttp://codigoderetorno.blogspot.com/search/label/sap%20notesjavascript:void(0)http://codigoderetorno.blogspot.com/search/label/SD_SALESDOCUMENT_CREATEhttp://codigoderetorno.blogspot.com/search/label/RSIRPIRLhttp://codigoderetorno.blogspot.com/2012_12_01_archive.htmlhttp://codigoderetorno.blogspot.com/search/label/ideshttp://codigoderetorno.blogspot.com/search/label/se18javascript:void(0)http://codigoderetorno.blogspot.com/search/label/sap_netweaverhttp://codigoderetorno.blogspot.com/search/label/objecthttp://codigoderetorno.blogspot.com/search/label/SMODILOGhttp://codigoderetorno.blogspot.com/search/label/qmelhttp://codigoderetorno.blogspot.com/search/label/HPhttp://codigoderetorno.blogspot.com/search/label/support%20portaljavascript:void(0)http://codigoderetorno.blogspot.com/search/label/impresora%20pdfhttp://codigoderetorno.blogspot.com/search/label/snotejavascript:void(0)http://codigoderetorno.blogspot.com/search/label/OKIhttp://codigoderetorno.blogspot.com/search/label/sybase_mobile_sdkjavascript:void(0)http://codigoderetorno.blogspot.com/search?updated-min=2014-01-01T00:00:00-08:00&updated-max=2015-01-01T00:00:00-08:00&max-results=9http://codigoderetorno.blogspot.com/search?updated-min=2012-01-01T00:00:00-08:00&updated-max=2013-01-01T00:00:00-08:00&max-results=15http://codigoderetorno.blogspot.com/search/label/keywordshttp://codigoderetorno.blogspot.com/search/label/REUSE_ALV_GRID_DISPLAYhttp://codigoderetorno.blogspot.com/2012/12/guixt-introduccion.htmlhttp://codigoderetorno.blogspot.com/search/label/XEROXhttp://codigoderetorno.blogspot.com/search/label/waershttp://codigoderetorno.blogspot.com/search/label/SPDDhttp://codigoderetorno.blogspot.com/search/label/Kleperhttp://codigoderetorno.blogspot.com/search/label/SPAUhttp://codigoderetorno.blogspot.com/search/label/javahttp://2.bp.blogspot.com/-tbVk5F-b1fk/UKeLEKmqHHI/AAAAAAAACNs/NEl6HbtxcxQ/s1600/pdf_anexos_sap.pnghttp://codigoderetorno.blogspot.com/search/label/sap%20guihttp://codigoderetorno.blogspot.com/2012_11_01_archive.htmlhttp://codigoderetorno.blogspot.com/search/label/trialhttp://codigoderetorno.blogspot.com/search/label/se19.http://codigoderetorno.blogspot.com/search/label/ZQQMhttp://codigoderetorno.blogspot.com/search?updated-min=2013-01-01T00:00:00-08:00&updated-max=2014-01-01T00:00:00-08:00&max-results=21http://codigoderetorno.blogspot.com/2012_09_01_archive.html

  • 23/2/2015 CdigodeRetorno:CargaMasivadeanexosenSAP

    http://codigoderetorno.blogspot.com/2012/11/cargamasivadeanexosensap.html 3/18

    GJAHRTYPEBKPFGJAHR,"EjercicioFILENAMETYPEFILE_TABLEfilename,"RutaficheroparaadjuntarENDOFTYPES_FACTURAS.

    TYPESTABLE_FACTURASTYPESTANDARDTABLEOFTYPES_FACTURAS.

    *&**&DATAOBJECTS*&*DATA:TI_FACTURASTYPETABLE_FACTURAS.DATA:TF_FILESTYPEfiletable.DATA:Wa_returnTYPEABAP_BOOL.

    DATA:WA_TARGET_BOTYPEBORIDENT."BussinessObjectDATA:WA_CONTENTTYPESOLI,"Contenidodeldocaadjuntar.IT_CONTENTTYPESTANDARDTABLEOFSOLI."Contenidodeldocaadjuntar.

    DATA:WA_FOL_IDTYPESOODK,"SAPoffice:DefinicindelaclaveWA_OBJ_IDTYPESOODK,WA_OBJ_DATATYPESOOD1,"SAPoffice:atributosOFFSETTYPEI.

    DATA:IT_OBJHEADTYPESTANDARDTABLEOFSOLI,WA_OBJECTTYPEBORIDENT.

    DATA:WA_FOLMEM_KTYPESOFMK,WA_NOTETYPEBORIDENT,EP_NOTETYPEBORIDENTOBJKEY.

    ZCS_ATTACHMENT_PDF:elMAINdelprograma:

    *&*&PROGRAMA.............:ZCS_ATTACHMENT_PDF*&AUTOR................:DavidRuedaBarrn*&FECHA................:*&TRANSACCION..........:*&ORDENDETRANSPORTE..:*&EMPRESA..............:*&*&DESCRIPCION:*&programaparaenlazarlosPDF'sdelasfacturasdecomprayventa*&conelcontentserver*&*&ModificadorFechaMARCAMotivo*&*&XXXXXXXXDD.MM.AA@01xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*&

    ClasicosABAP:DescargartablainternaaunahojaExcel

    DescargarSAPGUIysusparchesdesdeelSapSupportPortal

    GUIXT:LosScriptsdeGuiXT

    AadirnuevoscamposalastransaccionesME21N/ME22N/ME23N

    ClasicosAbap:SubirunarchivoExcelaunatablainternaII

    Recuperarvarioscamposconunaayudabusqueda

    CargaMasivadeanexosenSAP

    ClasicosAbap:SubirunahojaExcelaunatablainterna

    Orekait,blogdeSap

    MundoSap

    Historiadeunabapero

    ForoSap.com

    BlogdeSAP

    MyExperimentswithABAP

    NotasPracticasdegestin

    ConsultoriaSAP

    NotasytrucosSAP

    ABAP/SAPTips&Tricks

    ElblogtecnolgicodeBlag

    SapCommunityNetwork

    Blogroll

    CdigodeRetornoseencuentrabajounaLicenciaCreativeCommonsAtribucinNoComercialCompartirIgual3.0Unported.

    http://consultoria-sap.blogspot.com.es/http://www.orekait.com/blog/http://scn.sap.com/welcomehttp://manuelvinadopico.blogspot.com.es/http://creativecommons.org/licenses/by-nc-sa/3.0/http://www.mundosap.com/http://abapforsap.wordpress.com/http://codigoderetorno.blogspot.com/2013/02/recuperar-varios-campos-con-una-ayuda.htmlhttp://codigoderetorno.blogspot.com/2013/05/clasicos-abap-subir-una-hoja-excel-una.htmlhttp://codigoderetorno.blogspot.com/2014/05/anadir-nuevos-campos-las-transacciones.htmlhttp://saptricks.wordpress.com/http://codigoderetorno.blogspot.com/2013/03/guixt-los-scripts-de-guixt.htmlhttp://codigoderetorno.blogspot.com/2012/11/carga-masiva-de-anexos-en-sap.htmlhttp://codigoderetorno.blogspot.com/2014/04/clasicos-abap-subir-un-archivo-excel.htmlhttp://codigoderetorno.blogspot.com/2013/12/descargar-sap-gui-y-sus-parches-desde.htmlhttp://codigoderetorno.blogspot.com/2013/05/clasicos-abap-descargar-tabla-interna.htmlhttp://blogdesap.blogspot.com.es/http://atejada.blogspot.com.es/http://creativecommons.org/licenses/by-nc-sa/3.0/http://www.forosap.com/http://danielpanaro.wordpress.com/http://sample-code-abap.blogspot.com.es/

  • 23/2/2015 CdigodeRetorno:CargaMasivadeanexosenSAP

    http://codigoderetorno.blogspot.com/2012/11/cargamasivadeanexosensap.html 4/18

    *&

    REPORTZCS_ATTACHMENT_PDF.

    *&**&INCLUDE*&*INCLUDEZCS_ATTACHMENT_PDFTOP.

    *&**&ParmetrosdeSeleccin*&*SELECTIONSCREENBEGINOFBLOCKBLOCK01WITHFRAMETITLETEXTS01.SELECTOPTIONS:s_BUKRSFORBKPFBUKRS,s_dateFORBKPFBUDAT,s_vbelnFORBKPFXBLNR,s_BLARTFORBKPFBLARTOBLIGATORY.PARAMETERS:p_fileLIKERLGRAPFILENAMEOBLIGATORY.PARAMETERS:pi_compLIKERLGRAPFILENAMEOBLIGATORY.SELECTIONSCREENENDOFBLOCKBLOCK01.

    SELECTIONSCREENBEGINOFBLOCKBLOCK02WITHFRAMETITLETEXTS02.SELECTOPTIONS:s_kunnrforkna1kunnr,s_lifnrforlfa1lifnr.SELECTIONSCREENENDOFBLOCKBLOCK02.

    *&**&ValidacionesdePantalla*&*ATSELECTIONSCREENONVALUEREQUESTFORp_file.performset_filepathusingtext001changingp_file.

    ATSELECTIONSCREENONVALUEREQUESTFORpi_comp.performset_filepathusingtext002changingpi_comp.

    *&**&INITIALIZATION*&*INITIALIZATION.

    *&**&STARTOFSELECTION*&*STARTOFSELECTION.

    PERFORMCHECK_DATA.PERFORMDIRECTORY_CHECKUSINGpi_compCHANGINGwa_return.

    IFwa_returnEQABAP_FALSE.PERFORMCREATE_DIRECTORYUSINGpi_compCHANGINGwa_return.

  • 23/2/2015 CdigodeRetorno:CargaMasivadeanexosenSAP

    http://codigoderetorno.blogspot.com/2012/11/cargamasivadeanexosensap.html 5/18

    ENDIF.

    PERFORMDIRECTORY_LISTUSINGp_fileCHANGINGTF_FILES.PERFORMF_GET_FACTURAUSINGTF_FILESCHANGINGTI_FACTURAS.PERFORMADJUNTAR_PDFSUSINGTI_FACTURAS.

    INCLUDEZCS_ATTACHMENT_PDFF01.

    ZCS_ATTACHMENT_PDFF01:subrutinasdelprograma

    SubrutinaADJUNTAR_PDFS,estaeslasubrutinaquesubeelarchivopdfaunatablainterna,loconvierteyloanexaalobjetodenegociodesap.EnWA_TARGET_BOOBJTYPEindicaiseltipodeobjetodenegociodeSAP.

    ***IncludeZCS_ATTACHMENT_PDFF01*****Formabrir_fichero***EsteFORMsirveparaelexploradorenelqueseseleccionaelarchivo**FORMset_filepathUSINGpi_tituloTYPEstringCHANGINGpo_fileLIKErlgrapfilename.

    DATA:wl_filenameTYPEstring.

    CALLMETHODcl_gui_frontend_services=>directory_browseEXPORTINGwindow_title=pi_tituloCHANGINGselected_folder=wl_filenameEXCEPTIONScntl_error=1error_no_gui=2not_supported_by_gui=3OTHERS=4.

    IFsysubrc0.MESSAGEIDsymsgidTYPEsymsgtyNUMBERsymsgnoWITHsymsgv1symsgv2symsgv3symsgv4.ELSE.po_file=wl_filename.ENDIF.

    ENDFORM."ABRIR_FICHERO***FormF_GET_FACTURA**

  • 23/2/2015 CdigodeRetorno:CargaMasivadeanexosenSAP

    http://codigoderetorno.blogspot.com/2012/11/cargamasivadeanexosensap.html 6/18

    *LeeelnombredelarchivoPDFybuscaundoc.contablequecumpla:*BKPFXBLNR=nombedelarchivo*LaclaveestaenquelosarchivosPDFsellamanigualqueelnfact**FORMf_get_facturaUSINGti_filesTYPEfiletableCHANGINGto_facturasTYPEtable_facturas.

    DATA:wl_filenameTYPEsdbahactid,wl_filepathTYPEdbmsgorafilename,wl_extensionTYPEsdbadfunct,"#ECNEEDEDwl_facturaTYPEvbrkvbeln,wl_returnTYPEc.

    DATA:tl_tabla_facTYPEtable_facturas.

    FIELDSYMBOLS:TYPEfile_table,TYPEtypes_facturas.

    LOOPATti_filesASSIGNING.

    CLEAR:wl_filename,wl_extension,wl_filepath.REFRESH:tl_tabla_fac.

    MOVEfilenameTOwl_filepath.

    CALLFUNCTION'SPLIT_FILENAME'EXPORTINGlong_filename=wl_filepathIMPORTINGpure_filename=wl_filenamepure_extension=wl_extension.

    IF(wl_filenameISNOTINITIAL).

    MOVEwl_filenameTOwl_factura.CHECKwl_facturaINs_VBELN.

    CALLFUNCTION'CONVERSION_EXIT_ALPHA_INPUT'EXPORTINGinput=wl_facturaIMPORTINGoutput=wl_factura.

    IFs_kunnrISNOTINITIAL.

    SELECTxblnrbelnrbukrsgjahrINTOCORRESPONDINGFIELDSOFTABLEtl_tabla_facFROMzarixfi1WHERExblnrEQwl_facturaANDkunnrINs_kunnrANDbukrsINs_bukrs

  • 23/2/2015 CdigodeRetorno:CargaMasivadeanexosenSAP

    http://codigoderetorno.blogspot.com/2012/11/cargamasivadeanexosensap.html 7/18

    ANDbudatINs_dateANDblartINs_blart.ELSEIFs_lifnrISNOTINITIAL.

    SELECTxblnrbelnrbukrsgjahrINTOCORRESPONDINGFIELDSOFTABLEtl_tabla_facFROMzarixfi1WHERExblnrEQwl_facturaANDlifnrINs_lifnrANDbukrsINs_bukrsANDbudatINs_dateANDblartINs_blart.

    ENDIF.

    IFtl_tabla_fac[]ISINITIAL.CONTINUE.ELSE.

    LOOPATtl_tabla_facASSIGNING.

    PERFORMcheck_attachmentUSINGwl_facturaCHANGINGwl_return.

    IFwl_returnISINITIAL.filename=filename.APPENDTOto_facturas.ELSE.WRITE:/2bukrs,'/',belnr,'/',gjahr,TEXTM01.ENDIF.DELETEtl_tabla_facWHEREbelnrEQbelnr.ENDLOOP.

    ENDIF.

    ENDIF.

    ENDLOOP.

    ENDFORM."F_GET_FACTURA***FormADJUNTAR_PDFS***text***>P_TI_FACTURAStext**FORMadjuntar_pdfsUSINGto_facturasTYPEtable_facturas.

    *DATAdocument_serviceTYPEREFTOcl_gos_document_service.

  • 23/2/2015 CdigodeRetorno:CargaMasivadeanexosenSAP

    http://codigoderetorno.blogspot.com/2012/11/cargamasivadeanexosensap.html 8/18

    *DATAobjetoTYPEborident.*DATAobjkeyTYPEswo_typeid.DATAwl_filenameTYPEstring.

    FIELDSYMBOLS:TYPELINEOFtable_facturas.

    LOOPATto_facturasASSIGNING.

    CLEARwl_filename.

    "1ConfiguracindelObjeto.wa_target_boobjtype='BKPF'.CONCATENATEbukrsbelnrgjahrINTOwa_target_boobjkey.*wa_target_boobjkey=belnr.wl_filename=filename.

    CALLFUNCTION'GUI_UPLOAD'EXPORTINGfilename=wl_filenamefiletype='BIN'TABLESdata_tab=it_contentEXCEPTIONSfile_open_error=1file_read_error=2no_batch=3gui_refuse_filetransfer=4invalid_type=5no_authority=6unknown_error=7bad_data_format=8header_not_allowed=9separator_not_allowed=10header_too_long=11unknown_dp_error=12access_denied=13dp_out_of_memory=14disk_full=15dp_timeout=16OTHERS=17.

    IF(sysubrc0).WRITE:/2TEXTM02,wl_filename,TEXTM03,sysubrc.continue.ENDIF.

    CHECKNOTit_contentISINITIAL.CALLFUNCTION'SO_CONVERT_CONTENTS_BIN'EXPORTINGit_contents_bin=it_content

  • 23/2/2015 CdigodeRetorno:CargaMasivadeanexosenSAP

    http://codigoderetorno.blogspot.com/2012/11/cargamasivadeanexosensap.html 9/18

    IMPORTINGet_contents_bin=it_content.

    CALLFUNCTION'SO_FOLDER_ROOT_ID_GET'EXPORTINGregion='B'"adressfolderrootIMPORTINGfolder_id=wa_fol_idEXCEPTIONScommunication_failure=1owner_not_exist=2system_failure=3x_error=4OTHERS=5.

    IF(sysubrc0).WRITE:/2'ERROR:SO_FOLDER_ROOT_ID_GET:',wl_filename,'EXCEPTIONS:',sysubrc.continue.ENDIF.

    wa_obj_dataobjsns='O'."Objeto:Carcter(privado,funcional,etc.);O=Estndarwa_obj_dataobjla=sylangu."Idiomaenquesehacreadoeldocumento

    *Brevedescripcindelcontenido:wa_obj_dataobjdes=xblnr.CONCATENATEtexta01wa_obj_dataobjdesINTOwa_obj_dataobjdesSEPARATEDBYspace.

    *Ext.delfichero.offset=STRLEN(filename)3.wa_obj_datafile_ext=filename+offset(3).

    CALLFUNCTION'SO_OBJECT_INSERT'EXPORTINGfolder_id=wa_fol_idobject_type='EXT'object_hd_change=wa_obj_dataIMPORTINGobject_id=wa_obj_idTABLESobjhead=it_objheadobjcont=it_contentEXCEPTIONSactive_user_not_exist=1communication_failure=2component_not_available=3dl_name_exist=4folder_not_exist=5folder_no_authorization=6object_type_not_exist=7operation_no_authorization=8owner_not_exist=9

  • 23/2/2015 CdigodeRetorno:CargaMasivadeanexosenSAP

    http://codigoderetorno.blogspot.com/2012/11/cargamasivadeanexosensap.html 10/18

    parameter_error=10substitute_not_active=11substitute_not_defined=12system_failure=13x_error=14OTHERS=15.IFsysubrc=0ANDwa_target_boobjkeyISNOTINITIAL.*CreamoselficherocomoBOparaquepuedaadjuntarse.wa_folmem_kfoltp=wa_fol_idobjtp.wa_folmem_kfolyr=wa_fol_idobjyr.wa_folmem_kfolno=wa_fol_idobjno.wa_folmem_kdoctp=wa_obj_idobjtp.wa_folmem_kdocyr=wa_obj_idobjyr.wa_folmem_kdocno=wa_obj_idobjno.ep_note=wa_folmem_k.wa_noteobjtype='MESSAGE'.wa_noteobjkey=ep_note.

    *3AdjuntardocumentoalBOdeseado(Materialennuestrocaso)CALLFUNCTION'BINARY_RELATION_CREATE_COMMIT'EXPORTINGobj_rolea=wa_target_boobj_roleb=wa_noterelationtype='ATTA'EXCEPTIONSno_model=1internal_error=2unknown=3OTHERS=4.

    IFsysubrcISINITIAL.

    WRITE:/2TEXTM05,14xblnr,26TEXTM06,60bukrs,'/',belnr,'/',gjahr.

    PERFORMmove_pdf_completadoUSINGfilenamepi_comp.

    ELSE.

    WRITE:/2TEXTM07,30xblnr.ENDIF.

    ELSE.WRITE:/2TEXTM08,30xblnr.RETURN.ENDIF.ENDLOOP.

    ENDFORM."ADJUNTAR_PDFS*&*

  • 23/2/2015 CdigodeRetorno:CargaMasivadeanexosenSAP

    http://codigoderetorno.blogspot.com/2012/11/cargamasivadeanexosensap.html 11/18

    *&FormCHECK_DATA*&**Comprobarelrangodeclienteodeudores:*Elusuariodebeintroducirunrangodeclientesodedeudores*Nosepuedeintroducirambosrangoalavez*Ambosrangonopuedneestarvaciaosalavez**FORMcheck_data.

    IF(s_kunnrISINITIAL)AND(s_lifnrISINITIAL).MESSAGEtexte01TYPE'S'DISPLAYLIKE'E'.STOP.">VolvemosalapantallainicialELSEIF(s_kunnrISNOTINITIAL)AND(s_lifnrISNOTINITIAL).MESSAGEtexte02TYPE'S'DISPLAYLIKE'E'.STOP.">VolvemosalapantallainicialENDIF.

    ENDFORM."CHECK_DATA*&**&FormDIRECTORY_LIST*&**Listadearchivosdeldirectorioseleccionados*NosinteresansollosPDF***>PI_FILE:directorio*directory_list_filesEXPORTINGdirectory=wl_filenamefilter='*.PDF'files_only=abap_falsedirectories_only=abap_falseCHANGINGfile_table=po_files

  • 23/2/2015 CdigodeRetorno:CargaMasivadeanexosenSAP

    http://codigoderetorno.blogspot.com/2012/11/cargamasivadeanexosensap.html 12/18

    count=wl_countEXCEPTIONScntl_error=1directory_list_files_failed=2wrong_parameter=3error_no_gui=4not_supported_by_gui=5OTHERS=6.IFsysubrc0.MESSAGEIDsymsgidTYPEsymsgtyNUMBERsymsgnoWITHsymsgv1symsgv2symsgv3symsgv4.ELSE.LOOPATpo_filesASSIGNING.CONCATENATEwl_filename'\'filenameINTOfilename.ENDLOOP.ENDIF.ENDFORM."DIRECTORY_LIST*&**&FormMOVE_PDF_COMPLETADO*&**CopialosPDFadjuntadosconexitoaotracarpeta***>PI_ORIGEN:directorioorigen*>PI_DESTINO:directoriodestino**FORMmove_pdf_completadoUSINGpi_origenTYPEfile_tablefilenamepi_destinoLIKErlgrapfilename.

    CHECKpi_origenISNOTINITIAL.CHECKpi_destinoISNOTINITIAL.

    DATA:copy_sourceTYPEstring,copy_destinTYPEstring,ret_varTYPEi.

    DATA:wl_filenameTYPEsdbahactid,wl_filepathTYPEdbmsgorafilename,wl_extensionTYPEsdbadfunct.

    wl_filepath=pi_origen.

    CALLFUNCTION'SPLIT_FILENAME'EXPORTINGlong_filename=wl_filepathIMPORTINGpure_filename=wl_filenamepure_extension=wl_extension.

    copy_source=pi_origen.CONCATENATEpi_destino'\'wl_filename'.'wl_extensionINTOcopy_destin.

  • 23/2/2015 CdigodeRetorno:CargaMasivadeanexosenSAP

    http://codigoderetorno.blogspot.com/2012/11/cargamasivadeanexosensap.html 13/18

    CALLMETHODcl_gui_frontend_services=>file_copyEXPORTINGSOURCE=copy_sourceDESTINATION=copy_destinoverwrite=abap_trueEXCEPTIONScntl_error=1error_no_gui=2wrong_parameter=3disk_full=4access_denied=5file_not_found=6destination_exists=7unknown_error=8path_not_found=9disk_write_protect=10drive_not_ready=11OTHERS=12.

    IFsysubrcEQ0.

    CALLMETHODcl_gui_frontend_services=>file_deleteEXPORTINGfilename=copy_sourceCHANGINGrc=ret_varEXCEPTIONSfile_delete_failed=1cntl_error=2error_no_gui=3file_not_found=4access_denied=5unknown_error=6not_supported_by_gui=7wrong_parameter=8OTHERS=9.ENDIF.ENDFORM."MOVE_PDF_COMPLETADO*&**&FormDIRECTORY_CHECK*&**Compruebasiexisteeldirectorio*Sinoexiste,preguntasielusuariodeseacrearlo***>PI_DIR:directorio**FORMdirectory_checkUSINGpi_dirLIKErlgrapfilenameCHANGINGpo_returnTYPEabap_bool.

    CHECKpi_dirISNOTINITIAL.

  • 23/2/2015 CdigodeRetorno:CargaMasivadeanexosenSAP

    http://codigoderetorno.blogspot.com/2012/11/cargamasivadeanexosensap.html 14/18

    DATA:wl_dirTYPEstring.

    CLEAR:wl_dir.

    wl_dir=pi_dir.

    CALLMETHODcl_gui_frontend_services=>directory_existEXPORTINGdirectory=wl_dirRECEIVINGresult=po_returnEXCEPTIONScntl_error=1error_no_gui=2wrong_parameter=3not_supported_by_gui=4OTHERS=5.

    IFsysubrc0.MESSAGEIDsymsgidTYPEsymsgtyNUMBERsymsgnoWITHsymsgv1symsgv2symsgv3symsgv4.STOP.ENDIF.ENDFORM."directory_check*&**&FormCREATE_DIRECTORY*&**Preguntaalusuariosiquierecreareldirectoriolocalmente*Creaeldirectoriosiasiloconfirmaelusuario***>PI_COMPDirectorio*

  • 23/2/2015 CdigodeRetorno:CargaMasivadeanexosenSAP

    http://codigoderetorno.blogspot.com/2012/11/cargamasivadeanexosensap.html 15/18

    IMPORTINGanswer=wl_answer.

    IFwl_answer'J'.MESSAGEtextt01TYPE'S'DISPLAYLIKE'E'.STOP.ELSE.

    wl_dir=pi_dir.

    CALLMETHODcl_gui_frontend_services=>directory_createEXPORTINGdirectory=wl_dirCHANGINGrc=wl_rcEXCEPTIONSdirectory_create_failed=1cntl_error=2error_no_gui=3directory_access_denied=4directory_already_exists=5path_not_found=6unknown_error=7not_supported_by_gui=8wrong_parameter=9OTHERS=10.IFsysubrc0.MESSAGEtextt04TYPE'S'DISPLAYLIKE'E'.STOP.ELSE.MESSAGEtextt05TYPE'S'.ENDIF.ENDIF.ENDFORM."CREATE_DIRECTORY*&**&FormCHECK_ATTACHMENT*&**Compruebasilafacturayahasidoadjuntadaanteriormente*aldocumentocontable***>PI_doc:datosdeldoc.contable*>PI_FACTURA:ndefactura*

  • 23/2/2015 CdigodeRetorno:CargaMasivadeanexosenSAP

    http://codigoderetorno.blogspot.com/2012/11/cargamasivadeanexosensap.html 16/18

    DATA:tl_BDN_CONTYPESTANDARDTABLEOFBDN_CON.

    FIELDSYMBOLS:TYPEBDN_CON.

    CLEAR:wl_objkey,po_return.REFRESH:tl_BDN_CON.

    CONCATENATEpi_docbukrspi_docbelnrpi_docgjahrINTOwl_objkey.

    CALLFUNCTION'BDS_GOS_CONNECTIONS_GET'EXPORTING*LOGICAL_SYSTEM=classname=wl_classnameobjkey=wl_objkeyCLIENT=SYMANDTTABLESgos_connections=tl_BDN_CONEXCEPTIONSNO_OBJECTS_FOUND=1INTERNAL_ERROR=2INTERNAL_GOS_ERROR=3OTHERS=4.IFsysubrc0.*MESSAGEIDSYMSGIDTYPESYMSGTYNUMBERSYMSGNO*WITHSYMSGV1SYMSGV2SYMSGV3SYMSGV4.ELSEIF(tl_BDN_CON[]ISNOTINITIAL).

    LOOPATtl_BDN_CONASSIGNING.

    FINDFIRSTOCCURRENCEOFpi_facturaINDESCRIPT.

    IFSYSUBRCEQ0.po_return=abap_true.EXIT.ENDIF.

    ENDLOOP.

    ENDIF.

    ENDFORM."CHECK_ATTACHMENT

    NotasOSSdeinteres:927407DeterminingthecontentofGOSandSAPofficedocuments904711SAPoffice:Wherearedocumentsphysicallystored?916512SAPoffice:Directoryforupload/download/display

  • 23/2/2015 CdigodeRetorno:CargaMasivadeanexosenSAP

    http://codigoderetorno.blogspot.com/2012/11/cargamasivadeanexosensap.html 17/18

    PublicadoporDavidRuedaen9:21

    Etiquetas:abap,abaporientadoaobjetos,anexos,attachment,CL_GOS_DOCUMENT_SERVICE,GOS

    448074Callinggenericobjectservicesfromthedialog

    EntradasAnteriores:Iain'tafraidofnoGOSCambiarlacategoradearchivoparaGOSRSIRPIRL:recolocandoloscontenidosdeSOFFCONT1Crear,VisualizaryBorraranexosconCL_GOS_DOCUMENT_SERVICE

    +2 Recomendar esto en Google

    Respuestas

    Responder

    Introducetucomentario...

    Comentarcomo: CuentadeGoogle

    Publicar Vistaprevia

    2comentarios:

    AndreynaPalinsky 9demayode2014,7:59

    Muybuenartculo....tengounaduda:estosepodrhacerparaefectuarlacargamasivaaunaunidadexterna?muchasgracias

    Responder

    DavidRueda 16demayode2014,2:12

    Dependequetengaspor"unidadexterna"unservidorOpenTExt,unDMSosimplementeunservidordearchivos.PodrascargartodoslospfdenelservidoryanexarenSAPlaURLalarchivo.EsunabuenaideaparanosobrecargartantoSAP.

    http://www.blogger.com/share-post.g?blogID=5406801565410564263&postID=3557587058832059925&target=facebookhttp://www.blogger.com/share-post.g?blogID=5406801565410564263&postID=3557587058832059925&target=pinterestjavascript:;http://codigoderetorno.blogspot.com/search/label/attachmenthttp://www.blogger.com/profile/16638549619216966785http://www.blogger.com/share-post.g?blogID=5406801565410564263&postID=3557587058832059925&target=twitterhttp://codigoderetorno.blogspot.com.es/2012/10/cambiar-la-categoria-de-archivo-para-gos.htmlhttp://codigoderetorno.blogspot.com/2012/11/carga-masiva-de-anexos-en-sap.html?showComment=1400231566042#c8437530698533282311http://www.blogger.com/share-post.g?blogID=5406801565410564263&postID=3557587058832059925&target=emailhttp://codigoderetorno.blogspot.com.es/2012/11/clgosdocumentservice.htmlhttp://codigoderetorno.blogspot.com.es/2012/09/i-aint-afraid-of-no-gos.htmlhttp://codigoderetorno.blogspot.com/search/label/CL_GOS_DOCUMENT_SERVICEhttp://www.blogger.com/share-post.g?blogID=5406801565410564263&postID=3557587058832059925&target=bloghttp://codigoderetorno.blogspot.com/search/label/anexoshttp://codigoderetorno.blogspot.com/search/label/abap%20orientado%20a%20objetosjavascript:;http://codigoderetorno.blogspot.com.es/2012/10/rsirpirl-recolocando-los-contenidos-en.htmlhttp://codigoderetorno.blogspot.com/search/label/GOShttp://codigoderetorno.blogspot.com/2012/11/carga-masiva-de-anexos-en-sap.htmljavascript:;http://www.blogger.com/profile/07902393994593119691http://codigoderetorno.blogspot.com/2012/11/carga-masiva-de-anexos-en-sap.html?showComment=1399647576927#c2823552587199753109https://plus.google.com/111683068712698730474http://codigoderetorno.blogspot.com/search/label/abapjavascript:;

  • 23/2/2015 CdigodeRetorno:CargaMasivadeanexosenSAP

    http://codigoderetorno.blogspot.com/2012/11/cargamasivadeanexosensap.html 18/18

    Entradamsreciente EntradaantiguaPginaprincipal

    Suscribirsea:Enviarcomentarios(Atom)

    PlantillaSimple.ConlatecnologadeBlogger.

    http://codigoderetorno.blogspot.com/feeds/3557587058832059925/comments/defaulthttp://www.blogger.com/http://codigoderetorno.blogspot.com/http://codigoderetorno.blogspot.com/2012/12/guixt-introduccion.htmljavascript:;http://codigoderetorno.blogspot.com/2012/11/clgosdocumentservice.html