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