WEB UI 上传URL附件(使用方法备份)

时间:2022-08-22 18:51:46
FUNCTION zcrm_update_atta.
*"----------------------------------------------------------------------
*"*"Local Interface:
*" IMPORTING
*" VALUE(NOBJECT_ID) TYPE CRMT_PO_NUMBER_SOLD OPTIONAL
*" VALUE(OOBJECT_ID) TYPE CRMT_OBJECT_ID OPTIONAL
*" VALUE(PROCESS_TYPE) TYPE CRMT_PROCESS_TYPE OPTIONAL
*" VALUE(FILENAME) TYPE STRING OPTIONAL
*" VALUE(URL) TYPE STRING OPTIONAL
*" VALUE(RFIELD1) TYPE STRING OPTIONAL
*" VALUE(RFIELD2) TYPE STRING OPTIONAL
*" EXPORTING
*" VALUE(MSGINFO) TYPE STRING
*" VALUE(MSGTYPE) TYPE STRING
*" TABLES
*" FJ STRUCTURE ZCRMS0085 OPTIONAL
*"----------------------------------------------------------------------
"数据定义
TYPES:BEGIN OF ty_order,
guid TYPE crmt_object_guid,
object_id TYPE crmt_object_id,
process_type TYPE crmt_process_type,
object_type TYPE crmt_subobject_category_db,
END OF ty_order,
BEGIN OF ty_docu,
objtypelo TYPE skwf_ioty,
classlo TYPE sdok_class,
objidlo TYPE sdok_docid,
objtypeph TYPE skwf_ioty,
classph TYPE sdok_class,
objidph TYPE sdok_docid,
value TYPE sdok_propv,
END OF ty_docu.
DATA:gw_order TYPE ty_order,
ls_business_object TYPE sibflporb,
lt_phioloios TYPE skwf_lpios,
ls_phioloios LIKE LINE OF lt_phioloios,
lt_ios_prop_result TYPE crm_kw_propst,
ls_ios_prop_result LIKE LINE OF lt_ios_prop_result,
lt_prop TYPE sdokproptls,
ls_prop TYPE sdokproptl,
lt_docu TYPE TABLE OF ty_docu,
lt_docud TYPE TABLE OF ty_docu, "要删除的
ls_docu LIKE LINE OF lt_docu,
gt_url TYPE sdokcntascs,
gw_url LIKE LINE OF gt_url,
gt_prop TYPE sdokproptys,
gw_prop LIKE LINE OF gt_prop,
gt_dele TYPE skwf_ios,
gw_dele TYPE skwf_io,
gw_error TYPE skwf_error,
gw_fj TYPE zcrms0085. * IF FJ[] IS INITIAL.
* msgtype = 'E'.
* msginfo = 'CRM Attachment is required!'.
* ENDIF.
IF oobject_id IS INITIAL.
msgtype = 'E'.
msginfo = 'CRM object id is required!'.
ELSE.
IF oobject_id CO '0123456789 '.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = oobject_id
IMPORTING
output = gw_order-object_id.
SELECT SINGLE guid object_id process_type object_type INTO gw_order
FROM crmd_orderadm_h WHERE object_id = gw_order-object_id AND process_type = process_type.
IF sy-subrc <> .
msgtype = 'E'.
msginfo = 'CRM object id or type is incorrect!'.
ENDIF.
ELSE.
msgtype = 'E'.
msginfo = 'CRM object id is incorrect!'.
ENDIF.
ENDIF. IF msgtype = 'E'.
EXIT.
ENDIF. "取出工单对应的附件信息
ls_business_object-instid = gw_order-guid.
ls_business_object-typeid = gw_order-object_type.
ls_business_object-catid = 'BO'.
CALL METHOD cl_crm_documents=>get_info
EXPORTING
business_object = ls_business_object
IMPORTING
phioloios = lt_phioloios
ios_properties_result = lt_ios_prop_result. "附件整理到临时表
LOOP AT lt_phioloios INTO ls_phioloios.
CLEAR:ls_docu.
MOVE-CORRESPONDING ls_phioloios TO ls_docu.
* READ TABLE lt_ios_prop_result INTO ls_ios_prop_result WITH KEY objtype = ls_phioloios-objtypelo
* class = ls_phioloios-classlo
* objid = ls_phioloios-objidlo.
* IF sy-subrc = 0.
* REFRESH:lt_prop.
* lt_prop[] = ls_ios_prop_result-properties[]."属性表
* READ TABLE lt_prop INTO ls_prop WITH KEY name = 'KW_RELATIVE_URL'.
* IF sy-subrc = 0."不存在的。
* ENDIF.
* ls_docu-value = ls_prop-value.
* ENDIF.
* READ TABLE fj INTO gw_fj WITH KEY filename = ls_docu-value.
* IF sy-subrc <> 0.
APPEND ls_docu TO lt_docu."当前文件不在传过来的文件中,需要删除
* ELSE.
* DELETE fj WHERE filename = ls_docu-value."传过来的文件已经存在,删除传过来的表,这样传过来的表都是不存在的,全部新建
* ENDIF.
ENDLOOP.
"循环需要删除的表;全部删除
IF lt_docu[] IS NOT INITIAL.
REFRESH:gt_dele.
LOOP AT lt_docu INTO ls_docu.
gw_dele-objtype = ls_docu-objtypelo.
gw_dele-class = ls_docu-classlo.
gw_dele-objid = ls_docu-objidlo.
APPEND gw_dele TO gt_dele.
CLEAR:gw_dele.
gw_dele-objtype = ls_docu-objtypeph.
gw_dele-class = ls_docu-classph.
gw_dele-objid = ls_docu-objidph.
APPEND gw_dele TO gt_dele.
CLEAR:gw_dele.
ENDLOOP.
cl_crm_documents=>delete(
EXPORTING
business_object = ls_business_object
ios = gt_dele
IMPORTING
error = gw_error ).
IF gw_error-type = 'E'.
msgtype = 'E'.
msginfo = msginfo && ls_docu-value && ':Delete error!'.
EXIT.
ELSE.
msgtype = 'S'.
ENDIF.
ENDIF. "循环附件表,新建批处理。
IF fj[] IS NOT INITIAL.
LOOP AT fj INTO gw_fj.
REFRESH:gt_url,gt_prop.
gw_url-line = gw_fj-url.
APPEND gw_url TO gt_url.
gw_prop-name = 'KW_RELATIVE_URL'. "The name of URL
gw_prop-value = gw_fj-filename.
APPEND gw_prop TO gt_prop.
gw_prop-name = 'CONTENT_URL'.
gw_prop-value = gw_fj-url.
APPEND gw_prop TO gt_prop.
gw_prop-name = 'BDS_KEYWORD'.
gw_prop-value = 'TVS'.
APPEND gw_prop TO gt_prop.
gw_prop-name = 'DESCRIPTION'.
gw_prop-value = gw_fj-filename.
APPEND gw_prop TO gt_prop. cl_crm_documents=>create_url(
EXPORTING
url = gt_url
properties = gt_prop
business_object = ls_business_object
IMPORTING
error = gw_error ).
IF gw_error-type = 'E'.
msgtype = 'E'.
msginfo = msginfo && gw_fj-filename && ':create error!'.
EXIT.
ELSE.
msgtype = 'S'.
ENDIF.
ENDLOOP.
ENDIF. ENDFUNCTION.

WEB UI 上传URL附件(使用方法备份)的更多相关文章

  1. C&num;实现Web文件上传的两种方法

    1. C#实现Web文件的上传 在Web编程中,我们常需要把一些本地文件上传到Web服务器上,上传后,用户可以通过浏览器方便地浏览这些文件,应用十分广泛. 那么使用C#如何实现文件上传的功能呢?下面笔 ...

  2. web 文件上传 无刷新的方法 使用iframe

    <html> <script type="text/javascript" src="admin/view/js/jquery.min.js" ...

  3. web service上传参数代码实例

    web service上传参数代码实例 这次做的项目用到webservice比较多,最开始在网上看的参考dome,发现都不行,后来发现安卓4.0以后有很大的不同,在做传参时,有些东西需要注意: 第一, ...

  4. Java Web文件上传原理分析&lpar;不借助开源fileupload上传jar包&rpar;

    Java Web文件上传原理分析(不借助开源fileupload上传jar包) 博客分类: Java Web   最近在面试IBM时,面试官突然问到:如果让你自己实现一个文件上传,你的代码要如何写,不 ...

  5. Java Web文件上传

    参考资料:http://www.cnblogs.com/xdp-gacl/p/4200090.html 一.问题描述 Java Web文件上传需要借助一些第三方库,常用的是借助Apache的包,有两个 ...

  6. 文件批量上传-统一附件管理器-在线预览文件&lpar;有互联网和没有两种&rpar;--SNF快速开发平台3&period;0

    实际上在SNF里使用附件管理是非常简单的事情,一句代码就可以搞定.但我也要在这里记录一下统一附件管理器能满足的需求. 通用的附件管理,不要重复开发,调用尽量简洁. 批量文件上传,并对每个文件大小限制, ...

  7. WEB文件上传下载功能

    WEB文件上传下载在日常工作中经常用到的功能 这里用到JS库 http://files.cnblogs.com/meilibao/ajaxupload.3.5.js 上传代码段(HTML) <% ...

  8. Web 文件上传 目录

    0. SpringMVC -- 梗概--源码--贰--上传 1. Web上传文件的原理及实现 2. Web文件上传方法总结大全 3. SpringMVC 文件上传配置,多文件上传,使用的Multipa ...

  9. 数据採集之Web端上传文件到Hadoop HDFS

    前言 近期在公司接到一个任务.是关于数据採集方面的. 需求主要有3个: 通过web端上传文件到HDFS; 通过日志採集的方式导入到HDFS; 将数据库DB的表数据导入到HDFS. 正好近期都有在这方面 ...

随机推荐

  1. android学习之ListView

    移通152余继彪 该组件用于显示列表的view  包含了三个关键元素 listView 适配器 以及数据,适配器主要是用于将数据映射到listview,适配器数据主要是有hasmap 配合list对每 ...

  2. Delphi集合的用法

    参考:http://www.cnblogs.com/doit8791/archive/2012/08/17/2644859.html 集合是Pascal特有的数据类型,在Visual Basic.C/ ...

  3. SQL Server 2008中的Service SID 介绍

    [介绍] 我们打开SQL Server 2008 Management Studio, 会发现有如下几个登录: NT SERVICE\ClusSvc, NT SERVICE\MSSQL$KATMAI和 ...

  4. DTCMS会员中心快速更改样式思路

    非常简便 制作一个public.css文件,包含网站头部和底部的样式代码 每个会员中心模版导入这个文件就可以 把原先style.css的头部和底部样式代码删除

  5. &lbrack;MySQL 5&period;6&rsqb; 初识5&period;6的optimizer trace

      在MySQL5.6中,支持将执行的SQL的查询计划树记录下来,目前来看,即使对于非常简单的查询,也会打印出冗长的查询计划,看起来似乎不是很可读,不过对于一个经验丰富,对查询计划的生成过程比较了解的 ...

  6. Html&plus;Css&plus;Js&lowbar;之table每隔3行显示不同的两种颜色

    <html> <head> <script type="text/javascript"> /** 最近因项目的需求,有这样的一个问题: 一个t ...

  7. asp&period;net中过滤器的两种写法

    1.写在一个单独的类库中在web.config中进行配置 <httpModules> <add name="" type="类的全名称,程序集的名称&q ...

  8. java垃圾回收过程

    对于年轻代,刚开始创建的对象都是放置在eden区的,而将年轻代分成3个部分,主要是为了生命周期短的对象尽量留在年轻代.当eden区申请不到空间的时候,进行minorGC,把存活的对象拷贝到survio ...

  9. &lbrack;BZOJ4011&rsqb;&lbrack;HNOI2015&rsqb; 落忆枫音&lpar;学习笔记&rpar; - 拓扑&plus;DP

    其实就是贴一下防止自己忘了,毕竟看了题解才做出来 Orz PoPoQQQ 原文链接 Description 背景太长了 给定一个DAG,和一对点(x, y), 在DAG中由x到y连一条有向边,求生成树 ...

  10. Dynamics CRM2016 Web API之Retrieve Multiple

    之前的博文只介绍了通过记录的primary key来查询单条记录或者单个属性值,本篇介绍多条记录的查询方法 var filter = "?$filter=name eq '123'&quot ...