程式中下載採購申請的附件
一、可以對採購申請掛載附件,通過兩種方式:
1、使用GOS,直接掛附件,GOS這個名詞比較唬人,其實就是在PR介面上使用建立附件,註釋等.這樣掛載的附件只能掛到某個PR上,不能對行專案掛附件。
2、使用DMS,可以細到對行專案掛附件。(沒用過,目前沒空研究)
二、使用第一個方式管理附件的話,有的報表程式可能需要下載PR對應的附件到前臺目錄(前臺指定目錄和檔名),或者下載到某個local PC目錄,或者寫檔案到application server路徑下。
首先要知道的是這種方式下相關的透明表:
SRGBTBREL 文件連結,欄位INSTID_A、INSTID_B
SOOD SAPoffice: 物件定義,欄位OBJTP 文件類別程式碼, OBJYR 物件: 來自 ID 的年份, OBJNO 物件: 來自 ID 的號碼, OBJDES 內容的簡短描述, FILE EXT PC 應用程式的副檔名。
1、如果程式中需要在前臺儲存附件,可以使用class:
CL_GOS_DOCUMENT_SERVICE,
method:EXPORT_ATTACHMENT
2、下載到某個local PC目錄
使用FM:GUI_DOWNLOAD,如果是純文字的檔案,可以使用BAPI_REL_GETRELATIONS獲得物件連結,然後SO_OBJECT_READ獲得文字物件的內容。如果是二進位制檔案,如圖片,doc檔案,pdf檔案等,則處理較為複雜,需要BAPI_REL_GETRELATIONS,SO_OBJECT_READ,SO_KPRO_DATA_FROM_OBJCONT_GET,SO_LOIO_PHIO_GET,SDOK_PHIO_LOAD_CONTENT,SCMS_BINARY_TO_XSTRING幾個FM。
3、寫檔案到application server路徑,如寫到/usr/ttt/目錄下以供他用
如2中獲得物件內表,然後使用open dataset方式寫檔案,以下例子:
FORM frm_download_atta USING p_it_zmmjy_th_pr STRUCTURE zmmjy_th_pr
p_g_path ”路徑/usr/ttt/
CHANGING p_flag ”PR是否有附件
p_ftype .
DATA: l_objectid TYPE bapiborid,
lt_relat TYPE TABLE OF bapirellk WITH HEADER LINE,
l_objdisp TYPE sood2,
lt_objcont TYPE TABLE OF soli,
lt_context LIKE sdokpropty OCCURS 0 WITH HEADER LINE,
loio_object LIKE sdokobject,
phio_object LIKE sdokobject,
lt_binary_content TYPE TABLE OF sdokcntbin,
xfile TYPE xstring,
xfilename TYPE string.
DATA: xlen TYPE i.
DATA t_banfn LIKE eban-banfn.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = p_it_zmmjy_th_pr-banfn
IMPORTING
output = t_banfn.
l_objectid-objkey = t_banfn.
l_objectid-objtype = 'BUS2105'.
p_flag = 'X'.
CALL FUNCTION 'BAPI_REL_GETRELATIONS'
EXPORTING
objectid = l_objectid
relation = 'ATTA'"附件,除此之外還有NOTE,URL等
TABLES
listofrelations = lt_relat[].
IF LINES( lt_relat ) = 0."沒有附件
p_flag = ''.
EXIT.
ENDIF.
* LOOP AT lt_relat.
READ TABLE lt_relat INDEX 1."業務上規定附件只有一個
REFRESH lt_objcont.
CALL FUNCTION 'SO_OBJECT_READ'
EXPORTING
folder_id = lt_relat-objkey_b(17)
object_id = lt_relat-objkey_b+17(17)
IMPORTING
object_hd_display = l_objdisp
TABLES
objcont = lt_objcont
EXCEPTIONS
OTHERS = 15.
MOVE l_objdisp-file_ext TO p_ftype .
TRANSLATE l_objdisp-file_ext TO UPPER CASE.
CALL FUNCTION 'SO_KPRO_DATA_FROM_OBJCONT_GET'
IMPORTING
loio_object = loio_object
TABLES
objcont = lt_objcont
context = lt_context
EXCEPTIONS
missing_kpro_data = 1
OTHERS = 2.
CALL FUNCTION 'SO_LOIO_PHIO_GET'
EXPORTING
loio_object = loio_object
IMPORTING
phio_object = phio_object
EXCEPTIONS
kpro_inconsistency = 1
x_error = 2
OTHERS = 3.
CALL FUNCTION 'SDOK_PHIO_LOAD_CONTENT'
EXPORTING
object_id = phio_object
TABLES
file_content_binary = lt_binary_content
EXCEPTIONS
not_existing = 1
not_authorized = 2
no_content = 3
bad_storage_type = 4
OTHERS = 5.
xlen = l_objdisp-objlen.
CALL FUNCTION 'SCMS_BINARY_TO_XSTRING'
EXPORTING
input_length = xlen
IMPORTING
buffer = xfile
TABLES
binary_tab = lt_binary_content
EXCEPTIONS
failed = 1
OTHERS = 2.
DATA sap_path_n TYPE string.
DATA wa LIKE sdokcntbin.
CONCATENATE p_g_path p_it_zmmjy_th_pr-filename '.' p_ftype INTO sap_path_n.
OPEN DATASET sap_path_n FOR OUTPUT IN BINARY MODE.
IF sy-subrc NE 0.
MESSAGE 'OPEN FILE FAILED' TYPE 'E'.
ENDIF.
LOOP AT lt_binary_content INTO wa.
TRANSFER wa-line TO sap_path_n.
ENDLOOP.
CLOSE DATASET sap_path_n.
CLEAR sap_path_n.
* ENDLOOP.
ENDFORM.
三、若DMS管理附件,怎麼下載附件,候補
相關推薦
程式中下載採購申請的附件
一、可以對採購申請掛載附件,通過兩種方式: 1、使用GOS,直接掛附件,GOS這個名詞比較唬人,其實就是在PR介面上使用建立附件,註釋等.這樣掛載的附件只能掛到某個PR上,不能對行專案掛附件。 2、使用DMS,可以細到對行專案掛附件。(沒用過,目前沒空研究) 二、使用第一個方式管理附件的話,有的報表程式可能
JAVA中建立HTTP通訊,從伺服器上獲取HTML程式碼,通過HTTP請求來下載圖片或其他二進位制檔案的程式,下載結果要按下載到的檔案型別進行存檔中。
通過HTTP請求來下載圖片或其他二進位制檔案的程式,下載結果要按下載到的檔案型別進行存檔 將程式碼從伺服器的中獲取下來的程式碼,在我之前已經講過了這裡寫連結內容 這裡我們就直接將原始碼稍加改動,加入一個檔案並請將builder 寫入即可。 import
JSP程式中response物件實現檔案下載的兩種方式
這篇文章主要介紹了JSP隱含物件response實現檔案下載的兩種方法,很簡單,但很實用,需要的朋友可以參考下。 一.JSP隱含物件response實現檔案下載的介紹 (1)在JSP中實現檔案下載最簡單的方法是定義超連結指向目標資源,使用者單擊超連結後直接下載資源,但直接暴露資源的URL 也
java 多excel下載 打成zip壓縮包 程式中建立檔案 響應到瀏覽器(二)
在瀏覽器端點選下載,會下載一個zip壓縮包,裡面包含多個Excel檔案(二) 我暫且把從程式中下載壓縮包分為三種類型,即三步下載,兩步下載,一步下載。三步下載是指第一步先從資料庫讀取資料、寫成檔案,然後把檔案們下載到本地磁碟;第二步是把檔案
android應用如何在有需要時申請root許可權?在程式中要呼叫哪些語句來實現?
測試的手機已經root,並且裝有授權管理,允許應用來申請root許可權。但是要怎麼在程式裡寫程式碼來觸發申請?我試過用:Runtime runtime = Runtime.getRuntime();Process proc = runtime.exec("su");是會彈出一個對話方塊問你是否允許申請root
php中使用head進行二進位制流輸出,讓使用者下載PDF等附件的方法
function downloadFile( $fullPath ){ // Must be fresh start if( headers_sent() ) die('Headers Sent'); // Required for
在Mac OS X中下載Android源代碼的一些經驗
總結 同步 uil 空白 googl 新版 -h 教程 files 首先說明。隨著最近(2014年6月開始)GFW的升級。這個站點:http://www.android.com/ 已經不能正常訪問了,以下的這些操作均是在我連接VPN的時候進行的。 首先,須要做一些準
java實現從url路徑中下載pdf文檔到本地
clas filename input 自己 lis pdf import tin -a package com.cellstrain.icell.util;import java.io.*;import java.net.*;public class DownloadPd
在ASP.NET MVC中利用Aspose.cells 將查詢出的數據導出為excel,並在瀏覽器中下載。
width tdi 新增 column 需求 options 解決 印象 ats 正題前的嘮叨 本人是才出來工作不久的小白菜一顆,技術很一般,總是會有遇到一些很簡單的問題卻不知道怎麽做,這些問題可能是之前解決過的。發現這個問題,想著提升一下自己的技術水平,將一些學的新的‘好
maven中下載jar包源碼和javadoc
clip load format code 引用 over resolve -i ise 1:Maven命令下載源碼和javadocs當在IDE中使用Maven時如果想要看引用的jar包中類的源碼和javadoc需要通過maven命令下載這些源碼,然後再進行引入,通過mvn
Confluence 6 從一個備份中獲得文件附件
www. dmi 自動 頁面 允許 ini www 自動備份 config 頁面中的文件附件可以從備份中獲得而不需要將備份文件導入到 Confluence 中。這個在用戶刪掉了附件,但是你還是想恢復這個附件的時候就變得非常有用了。自動備份和手動備份都允許你進行這個操作,但是
CentOS7中下載安裝Multitail(讓你的日誌文件變得多彩)
rec 時間 use ubuntu inf 圖片 tor ice clean MultiTail是幹啥的? Linux系統下查看日誌的一個工具,允許您監視終端中多個窗口中的日誌文件和命令輸出,著色,過濾和合並。 具體介紹請看官網:https://www.vanheusd
Springboot下載功能,附件超過8K不能顯示下載彈窗,頁面亂碼問題
strong oid map str 亂碼 ica req 大小 出現 Springboot項目中遇到一個文件下載問題,當文件大小超過8K時,不會出現彈出窗,而是直接在頁面顯示亂碼。 有問題的源碼如下: @RequestMapping(value = "/exportFi
如何找到微信中快取的檔案以及微信網頁中下載的遊戲
第一級目錄為 : Tencent 第二級目錄為:MicroMsg (微信) MobileQQ (QQ) 第三級目錄為:BigFile (儲存大的檔案 如遊戲) 檔名是隨機加密的 我們可以從大小看出
小程式中遇到的那些坑
坑1、沒有DOM 無法使用熟悉的$查詢、document.getElementById等等這些操作,小程式取而代之的是資料繫結技術,所謂的資料驅動,就是資料改變之後,檢視展示跟著自己會變。DOM沒了,所以只好頻繁的使用this.setData({})來操作頁面屬性。 tip:在方法最
怎樣在程式中打日誌?
在平時程式設計中經常遇到需要打日誌診斷錯誤這種情況,遠端客戶機?不能遠端除錯?系統中沒有自己的日誌方法?這時候就需要一個方便的,隨時加入隨時刪除的日誌方法。雖然沒有什麼技術含量,卻是相當實用 不多說,直接上程式碼 /// <summary>
小程式中圖片上傳
前端小程式:wxml <!--huitianxia/view/attend/attend/attend.wxml--> <import src="/huitianxia/view/common/foot.wxml"/> <view class='wrappe
微信小程式中資料的儲存和獲取
/儲存資料 try { wx.setStorageSync('key',this.data.radioCheckVal2) //key表示data中的引數
【Telerik UI for ASP.NET教程】如何在WPF應用程式中獲得流暢的設計主題
下載Telerik UI for WPF最新版本 瞭解如何使用Telerik UI中的Fluent主題為WPF輕鬆設定WPF應用程式的主題。新增透明度,丙烯酸效果,陰影,動畫等,以使用最新的UX和UI趨勢實現應用程式的現代化。 在WPF中使用Fluent Design 現在可以輕鬆地修改使用Tele
使用CefSharp在.Net程式中嵌入Chrome瀏覽器(四)——啟動優化
在實際使用過程中,發現有的客戶端會出現chrome載入網頁過慢問題,定位後發現很多是因為設定系統代理所致,此時可以通過如下啟動引數禁止系統代理。 {"proxy-auto-detect", "0"},{"no-proxy-server", "1"}, 另外一個小技巧是: 由於cef本