一段程序:SAP使用ODI方法为WORD填充数据

2023-10-31

未做测试, 仅记备查.

 

原文地址: http://blog.sina.com.cn/s/blog_3eefd36c01008cmz.html

 

原理:

     通过  CALL METHOD DOCUMENT->GET_MAIL_MERGE_INTERFACE 方法获取邮件合并的一个实例并对该实例进行操作。

 

优点:

     一般的ODI方法为word填充数据需要通过方法  CALL METHOD DOCUMENT->EXECUTE_MACRO 调用宏,此时用户需要将宏的优先级设为低,存在安全风险。该方法避免了宏安全性的设置。
 核心代码:
       CALL FUNCTION 'SAP_OI_LOAD_MIME_DATA'
    EXPORTING
      object_id        = object_id
    IMPORTING
      data_size        = doc_size
      document_format  = doc_format
      document_type    = doc_type
    TABLES
      data_table       = doc_table
    EXCEPTIONS
      object_not_found = 1
      internal_error   = 2
      OTHERS           = 3.
  IF sy-subrc NE 0.
    MESSAGE ID sy-msgid TYPE 'E' NUMBER sy-msgno
         WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.

  IF doc_size NE 0.
    doc_type = 'Word.Document.8'.
    call method document->open_document_from_table
       exporting
             document_size  = doc_size
             document_table = doc_table[]
*               open_inplace   = 'X'
*             startup_macro   = macro.
.
    CALL METHOD document->play_document_from_table
      EXPORTING
        document_table = doc_table[]
        document_size  = doc_size
        no_flush       = 'X'
*        STARTUP_MACRO  = macro
      IMPORTING
        retcode        = retcode.

    CALL METHOD DOCUMENT->GET_MAIL_MERGE_INTERFACE
*  EXPORTING
*    NO_FLUSH     = ' '
  IMPORTING
*    ERROR        =
    MM_INTERFACE = mail_object
*    RETCODE      =
        .


    CALL METHOD MAIL_OBJECT->SET_DATA_SOURCE
*      EXPORTING
*        DATE         =
*        DDIC_NAME    =
*        DESCRIPTION  = ''
*        NO_FLUSH     = ' '
*        TIME         =
*      IMPORTING
*        ERROR        =
*        RETCODE      =
      CHANGING
        DATA_TABLE   = tab_data
        FIELDS_TABLE = tab_field
*        PROPERTIES   =
        .

    DATA: l_lines TYPE i.
    DESCRIBE TABLE tab_data LINES l_lines.
    CALL METHOD MAIL_OBJECT->MERGE_RANGE
      EXPORTING
        FIRST    = 1
        LAST     = l_lines
*    NO_FLUSH = ' '
*  IMPORTING
*    ERROR    =
*    RETCODE  =
        .

    CALL METHOD MAIL_OBJECT->VIEW
*      EXPORTING
*        NO_FLUSH = ' '
*      IMPORTING
*        ERROR    =
*        RETCODE  =
        .

    CALL METHOD document->save_copy_as
      EXPORTING
        file_name   = 'c:/sss.doc'
        no_flush    = 'X'
        prompt_user = ' '
      IMPORTING
        retcode     = retcode.

    CALL METHOD c_oi_errors=>show_message
      EXPORTING
        type = 'E'.
    PERFORM close_doc.
    PERFORM close_factory.
  ELSE.
    MESSAGE 'No document selected' TYPE 'E'.
  ENDIF.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

一段程序:SAP使用ODI方法为WORD填充数据 的相关文章

  • 桌面 webkit 相当于 Android 的 addJavascriptInterface()?

    在研究 Android UI 可能性时 我发现了一种名为 addJavascriptInterface 的方法的文档 该方法允许您将 Android Java 对象上的方法公开给 UI 的 WebView 组件中的 Javascript 这
  • 为什么没有人接受 C# 中的公共字段?

    似乎每个 C 静态分析器在看到公共字段时都会抱怨 但为什么 当然 在某些情况下 公共 或内部 field就足够了 拥有一个拥有它的财产是没有意义的get and set 方法 如果我确定我不会重新定义该字段或添加该字段怎么办 副作用很糟糕
  • 与超类和子类构造函数接口

    我在 matlab 文档和之前有关使用 matlab 继承和类构造函数创建接口的问题中找不到帮助 为了使其整洁 放在一个包内 我可以将其压缩如下 而不是拖拽代码 一套 MyPkg有一个超类Super和一些子类Sub1 Sub2 我的大多数属
  • typescript 扩展不需要的接口

    我有两个接口 interface ISuccessResponse Success boolean Message string and interface IAppVersion extends ISuccessResponse OSVe
  • 数据源和数据集的区别

    我目前正在开发一个项目 其主要任务是读取存储在 SQL 数据库中的数据并以用户友好的形式显示它们 使用的编程语言是C 我在 Borland C Builder 6 环境中工作 但我认为标题中提出的问题与编程语言或库无关 当从数据库读取数据时
  • C# 接口实现关系只是“Can-Do”关系?

    今天有人告诉我 C 中的接口实现只是 Can Do 关系 而不是 Is A 关系 这与我长期以来所相信的LSP 里氏替换原理 相冲突 我一直认为所有的继承都应该意味着 Is A 关系 所以 如果接口实现只是一种 Can Do 关系 如果有一
  • 当属性名称本身是动态变量时如何获取bean属性的值

    我正在尝试编写一个自定义 JSPX 标记 该标记从给定列表中的每个对象读取给定 bean 属性的值 并将该属性的名称作为 JSP 属性传递给该标记 该标签看起来像这样
  • C# 反射和获取属性

    我有以下虚拟类结构 我试图找出如何从 PeopleList 中 People 类的每个实例获取属性 我知道如何从 People 的单个实例中获取属性 但我无法弄清楚如何从 PeopleList 中获取它 我确信这真的很简单 但有人能指出我正
  • 界面与组合

    我想我理解接口和抽象之间的区别 抽象设置默认行为 在纯抽象的情况下 行为需要由派生类设置 接口是您所需要的 无需基类的开销 那么接口相对于组合的优势是什么 我能想到的唯一优点是在基类中使用受保护的字段 我缺少什么 你的标题没有意义 你的解释
  • 有时 Properties.load() 会跳过行

    在以下情况下 Properties load 会跳过 InputStream 的第二行 这是 Java 的错误还是正常行为 public class PropTest public static void main String args
  • 元标记内的属性 property="og:title" 是什么?

    我有网站源代码的摘录 这是做什么的属性属性代表什么 其目的是什么 og title是开放图元标签之一 og 属性定义社交图中的对象 例如 Facebook 使用它们 og title代表对象的标题 因为它应该出现在图表中 请参阅此处了解更多
  • 检查值是否实现接口的说明

    我读过 Effective Go 和其他类似这样的问答 golang接口合规性编译类型检查 https stackoverflow com questions 17994519 golang interface compliance com
  • F# nameof 运算符不是一等函数

    我正在使用 F 4 7
  • Android proguard Javascript 接口问题

    我的项目在使用 proguard 进行混淆后因 javascriptinterface 失败 这是包含混淆器配置的一些建议的链接 但它在我的情况下不起作用 http groups google com group android devel
  • 如何动态创建新属性

    如何从对象方法内的给定参数创建属性 class Foo public function createProperty var name val here how can I create a property named var name
  • 在实现接口的类上强制使用单例模式

    我最好用一个例子来解释这个问题 我有一个接口模型可用于访问数据 模型可以有不同的实现 可以以各种格式表示数据 例如 XMl txt 格式等 Model不关心格式 可以说这样的一个实现是myxml模型 现在我想强迫myxml模型以及其他所有实
  • 有人能解释一下 C# 中接口的具体用法吗?

    有人能解释一下 C 中接口的具体用法吗 msdn 对此没有帮助吗 http msdn microsoft com en us library 87d83y5b aspx http msdn microsoft com en us libra
  • 更改 JSON.NET 序列化属性名称的方式

    如何更改 Newtonsoft JSON NET 序列化对象属性名称的方式 有几种方法 You can manually control how it serializes using the JsonTextWriter class ht
  • 从表达式函数获取父属性

    假设我有以下课程 public class Model public AnotherModel InnerModel get set public class AnotherModel public String Value get set
  • Java中接口作为方法参数

    前几天去面试 被问到了这样的问题 问 反转链表 给出以下代码 public class ReverseList interface NodeList int getItem NodeList nextNode void reverse No

随机推荐

  • ChatGPT未来会拥有自我情感和思维吗?

    ChatGPT是一种基于人工智能的聊天机器人 它可以模拟人类的对话 并且可以回答各种问题 目前 ChatGPT已经非常先进 但是它是否会拥有自我情感和思维呢 首先 我们需要明确一点 ChatGPT是一种基于机器学习的算法 它的行为是由程序员
  • 记一次阿里巴巴电话面试题

    前几天投了阿里巴巴校招简历 今天晚上突然来了阿里的面试电话 有点紧张又有点激动 面试的问题问的挺全面 但是有些准备不足 因此回答的并不算太满意 现在整理一下分享给大家 希望进阿里的小伙伴可以来踩踩 1 自我介绍 打电话时我刚吃完饭 上来就介
  • AndroidManifest.xml作用

    今天在看到一篇博客是对于博主对于AndroidManifest xml文件的作用的理解深感赞同 AndroidManifest xml文件就是在安装的时候用来给PackageManagerService进行解析 分析出这个APK的packa
  • 【NeurIPS 2021】ViT 中增强的 Shortcut Connection:Augmented Shortcuts for Vision Transformers

    Augmented Shortcuts for Vision Transformers 论文地址 主要工作 方案简介 基本定义 具体实现 Augmented Shortcuts Efficient Implementation via Ci
  • 权限维持篇---Windows权限维持--隐藏篇

    权限维持篇 Windows权限维持 隐藏篇 文章目录 权限维持篇 Windows权限维持 隐藏篇 前言 一 隐藏文件 二 隐藏账号 三 端口复用 四 进程注入 五 结束 六 我的公众号 前言 攻击者在获取服务器权限后 通常会用一些后门来维持
  • AD 原理图网络未连上,设置DRC报错

    AD原理图整理时 碰到一个网络没有连接 但是DRC检查没有提示有异常的情况 如下图 R7H右端并没有连上 然而原理图检查居然没有问题 在导入PCB时才报错 因为原理图DRC没有报错 想要找到问题 需要蛮多时间 细思极恐 AD其实是可以设置检
  • 数据结构-顺序栈的基本操作的实现(含全部代码)

    主要操作函数如下 InitStack SqStack s 参数 顺序栈s 功能 初始化 时间复杂度O 1 Push SqStack s SElemType e 参数 顺序栈s 元素e 功能 将e入栈 时间复杂度 O 1 Pop SqStac
  • 【黑马程序员】面向对象(五) 第九天

    android培训 java培训 java学习型技术博客 期待与您交流 知识点 异常处理能够使一个方法给它的调用者抛出一个异常 异常发生在一个方法的执行过程中 RuntimeException和Error都是免检异常 其它所有异常都是必检的
  • vite --- 搭建开发环境

    目录 下载安装和初始化VSCode 安装Node js yarn 使用 pnpm 安装与使用 搭建第一个Vite项目 使用 PNPM创建项目 项目目录解读 下载安装和初始化VSCode 1 访问网站 Visual Studio Code C
  • editplus配置python环境 和 php环境

    editplus配置python环境 和 php环境 使用editplus这么久 才知道是可以配置python环境 和 php环境 想来真丢人 这就是自学的痛苦之处 许多时如果不是自己突然想到 只会永远在黑暗中摸索 editplus配置py
  • KNN与CNN

    KNN与CNN相关 KNN K Nearest Neighbor 最邻近分类算法 就是k个最近的邻居的意思 说的是每个样本都可以用它最接近的k个邻居来代表 KNN算法的核心思想是如果一个样本在特征空间中的k个最相邻的样本中的大多数属于某一个
  • windows xp 驱动开发(三)DDK与WDK WDM的区别

    转自 http www cnblogs com hyddd archive 2009 03 15 1412684 html 最近尝试去了解WINDOWS下的驱动开发 现在总结一下最近看到的资料 1 首先 先从基础的东西说起 开发WINDOW
  • 第十四章 AlibabaCloud微服务下的链路追踪系统

    1 微服务架构下的排查问题复杂性概述 两个常 的问题 微服务调 链路出现了问题怎么快速排查 微服务调 链路耗时 怎么定位是哪个服务 链路追踪系统 分布式应 架构虽然满 了应 横向扩展的需求 但是运维和诊断的过程变得越来越复杂 例如会遇到接
  • linux 拷贝文件夹并覆盖另一个文件夹 cp指令

    参考 参考 https m runoob com linux linux comm cp html Linux cp 英文全拼 copy file 命令主要用于复制文件或目录 语法 cp options source dest 或 cp o
  • BoolQueryBuilder 和 wildcardQuery withFilter 查询

    一 BoolQueryBuilder查询说明 BoolQueryBuilder qb QueryBuilders boolQuery 1 返回的文档必须满足must子句的条件 并且参与计算分值 qb must QueryBuilder qu
  • 腾讯云数据库TDSQL:分布式数据库,你真的了解吗?

    分布式数据库进入人们的视野已经很久了 相对于传统的集中式数据库 分布式数据库在高性能 高可用 平滑拓展 高可靠 低成本等许多方面具有优势 但时至今日 关于分布式数据库 似乎一直缺少足够权威和客观的解读 现在 国家白皮书来了 为了明确分布式数
  • Vue SSR(vue服务端渲染)

    SSR的应用场景 1 SEO需求 SEO Search Engine Optimization 搜索引擎优化 是一种利用搜索引擎规则 提高网站在搜索引擎内自然排名的技术 通常这需要页面内容在页面加载完成时便已经存在 前后端分离的纯前端项目
  • ECCV 2022

    ECCV 2022 Learning Implicit Feature Alignment Function for Semantic Segmentation概述与代码分析 论文 https arxiv org abs 2206 0865
  • SPEED 飞车扩容改造:敢于对过去说不

    欢迎大家前往腾讯云社区 获取更多腾讯海量技术实践干货哦 作者 wincent 导语 敢于对过去的脚本说不 前言 QQ飞车作为一款竞速游戏 从08年至今十年光阴 依然坚挺 能运维一款这样的产品 非常的荣幸 压力和动力都是有的 有压力才有动力
  • 一段程序:SAP使用ODI方法为WORD填充数据

    未做测试 仅记备查 原文地址 http blog sina com cn s blog 3eefd36c01008cmz html 原理 通过 CALL METHOD DOCUMENT gt GET MAIL MERGE INTERFACE