使用ABAP程式碼提交SAP CRM Survey調查問卷
Jerry之前曾經寫過兩篇關於SAP CRM Survey調查問卷的技術文章:
-
SAP CRM Survey調查問卷的模型設計原理解析
-
如何使用SAP CRM Marketing Survey建立一個市場問卷調查
我們在瀏覽器裡填寫調查問卷的內容,點選Save儲存按鈕之後,調查問卷的結果被儲存到ABAP後臺。
在ABAP後臺系統的Survey Suite工具裡,能看到使用者填寫的survey結果。
比如下圖的意思是:
問題1:你會用ABAP程式設計嗎?回答會的人有11個,不會的有5個。
問題2:你會用Java程式設計嗎?回答會的人有10個,不會的有6個。
現在我有一個需求:寫一個ABAP程式,呼叫SAP CRM Survey的API來提交請求。
測試程式如下:
DATA(lo_tool) = NEW zcl_crm_survey_tool( ). lo_tool->submit( iv_question1 = 'X' iv_question2 = '' ).
執行之後,對比上圖,會ABAP的多了1個人,不會Java的多了1個人。
問題的關鍵就是如何設計zcl_crm_survey_tool?
Submit的方法分4個步驟, 見下面註釋:
METHOD submit. DATA: ret TYPE BAPIRET1. * Step1: get Survey TemplateDATA(survey_template) = get_survey_template( ). * Step2: create a new Survey instance guidDATA(survey_guid) = get_new_survey_instance_guid( survey_template ). * Step3: assemble request bodydata(lv_request_body) = assemble_request_body( iv_question1 = iv_question1 iv_question2 = iv_question2 iv_guid = survey_guid ). * Step4: Submit survey CALL FUNCTION 'CRM_SVY_RESULT_DISPATCHER'EXPORTING survey_data = lv_request_body IMPORTINGreturn = ret. WRITE:/ |result: { ret-message } | COLOR COL_NEGATIVE. COMMIT WORK AND WAIT. ENDMETHOD.
步驟1:
透過方法get_survey_template拿到Survey的模板程式碼。
以前的文章已經講過,Survey模板以XML的格式儲存在SAP後臺系統,
然而終端使用者在瀏覽器看到的Survey是html格式的,因此中間有一個步驟透過SAP標準的XSLT將xml轉換成html,並且生成一個新的Survey例項。這一系列的動作都封裝在我寫的方法get_survey_template裡面。該方法返回Survey模板的HTML原始碼,基於xml轉換而成。
步驟2:
方法get_new_survey_instance_guid,透過正規表示式將前一步驟生成的Survey例項的guid提取出來。因為後續步驟提交Survey結果時,需要在請求體里加入這個例項guid。
我採用的是正規表示式的方式解析出該guid,詳細步驟參考我的文章:使用ABAP正規表示式解析HTML標籤
步驟3:
assemble_request_body構造提交的請求方法體。在瀏覽器裡測試發現,如果兩個問題的答案都為是,則傳送的請求體如下:
svyApplicationId=CRM_SURVEY_ACTIVITY&SurveyId=JERRY_TEST&svySurveyId=JERRY_TEST&svyVersion=0000000003&SchemaVersion=1 &svySchemaVersion=1 &svyLanguage=EN&conid=&svyValueGuid=FA163EEF573D1ED89E9D22A316FC4754&svyValueVersion=0000000001&svyMandatoryMessage=Fill all mandatory fields before saving&survey/result/question1/answer1_placeholder=answer1_yes&survey/result/question2/answer2_placeholder=answer2_yes&onInputProcessing=SUBMIT
其中藍色的guid則是步驟2提取出的Survey例項,紅色的代表問題1的答案為是,紫色代表問題2的回答為是。
這些XML的詳細原理,參考我的文章 SAP CRM Survey調查問卷的模型設計原理解析。
步驟4:
使用如下函式提交Survey。
CALL FUNCTION 'CRM_SVY_RESULT_DISPATCHER'EXPORTING survey_data = lv_request_body IMPORTINGreturn = ret.
要獲取更多Jerry的原創技術文章,請關注公眾號"汪子熙"或者掃描下面二維碼:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24475491/viewspace-2158183/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SAP CRM Survey調查問卷的儲存模型模型
- SAP CRM Survey調查問卷的模型設計原理解析模型
- 使用ABAP程式碼給SAP CRM Business object建立附件AttachmentObject
- 海外問卷調查:利用海外IP代理進行精準問卷調查
- 如何使用ABAP程式碼建立SAP Product CategoryGo
- 使用 ABAP 程式碼刪除指定 SAP CRM 系統裡 Opportunity 訂單的文字Unity
- 最佳實戰 | 使用微搭低程式碼實現騰訊問卷滿意度調查
- SAP CRM user引數CRM_UI_PROFILE是在哪行ABAP程式碼裡讀取的UI
- SAP MM模組調研問卷樣例
- 微軟SkyDrive新增Excel survey問卷功能微軟Excel
- 使用程式碼修改SAP CRM附件的屬性
- 如何使用 ABAP 程式消費 SAP ABAP OData 服務
- 渠道查:解析問卷調查的秘密武器
- 代理IP如何幫助問卷調查?
- 調查問卷資料庫設計資料庫
- 程式設計師大調查丨填問卷,領限量周邊程式設計師
- 遊戲流失分析方法2 問卷調查法遊戲
- 問卷調查中常見問題及解決方法
- 使用 Prometheus 監控 SAP ABAP 應用程式Prometheus
- SAP ABAP程式碼中開啟瀏覽器跳轉訪問URL瀏覽器
- 6.djnago實現問卷調查系統Go
- 網路問卷調查90%都不合規範
- 需求分析問卷調查及反饋結果
- linux下實現問卷調查系統Linux
- 關於用 ABAP 程式碼手動觸發 SAP CRM organization Model 自動決定的研究
- 在SAP CRM WebClient UI中用javascript觸發ABAP eventWebclientUIJavaScript
- 如何查詢Authorization object在哪些ABAP程式碼裡使用到Object
- 2021年度測試行業調查問卷行業
- PHP自定義問卷調查的設計及思路PHP
- 財產保險產品開發通用調查問卷
- 在SAP CRM WebClient UI裡開啟ABAP Webdynpro頁面WebclientUI
- SAP CRM WebClient UI和ABAP Webdynpro頁面的互相跳轉WebclientUI
- git使用&拉程式碼&提交Git
- 如何使用程式碼修改SAP CRM One Order CUMULAT_H物件的值物件
- 如何使用程式碼的方式刪除 SAP CRM 訂單 Text 資料
- 兩種使用程式碼獲得SAP CRM product sales status的辦法
- 8種流失原因分析法(二):問卷調查法
- 問卷調查工具排行榜:飆升榜揭曉!