问题标签 [badi]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
738 浏览

sap - SAP cProjects 复制:设置任务级 WBS

在 cProjects 中创建项目时,我使用BADI BADI DPR_FIN_GECCO_ATTR它来操作在 SAP PS 中创建的外部 WBS ID。

SAP 接受我为阶段级别传递的 ID,但对于任务级别,SAP 将字符串“/TTO”附加到我的 WBS ID 的末尾。知道为什么会发生这种情况以及如何摆脱它。“/TTO”违反或屏蔽PS中的结构?

0 投票
1 回答
1149 浏览

abap - IDOC_CREATION_CHECK 参数填充?

我正在检查接口的实现,IF_EX_IDOC_CREATION_CHECK它有一个IDOC_DATA_CHECK带有 3 个参数的方法:

  1. IDOC_CONTROL 类型 EDIDC
  2. IDOC_DATA 类型 EDIDD_TT
  3. CREATE_IDOC 类型 C

我的问题是我在互联网上找不到与此接口相关的文档,也找不到示例。我想具体知道IDOC_DATA调用时参数有什么值?它是一次处理一种材料的 IDoc,还是携带所有材料的所有 IDoc?

让我头疼的代码是

当涉及到exit.语句时,它会在不处理下一个 IDoc 的情况下退出循环,但我不知道它是否停止检查所有材料的所有下一个 IDoc,或者IF_EX_IDOC_CREATION_CHECK~IDOC_DATA_CHECK使用下一组另一种材料的 IDoc 再次调用该方法.

不幸的是我不能用示例数据运行这个接口,因为它直接改变了其他系统的数据,所以我只能阅读代码。

因此,如果有人在此问题上有经验或参考,我将不胜感激。

提前致谢。

0 投票
1 回答
320 浏览

abap - 防止创建特定的信息类型记录?

我的目标是保护用户免受某些 HR 人员创建 105 信息类型(通信)的影响。我发现每次保存信息类型更新时都会调用HRPAD00INFTY BADI。但问题是我无法阻止在IN_UPDATE方法中创建/更新信息类型。

有人知道问题的解决方案吗?

0 投票
1 回答
1458 浏览

abap - 用户相关的 BAdI 实施。如何?

有什么方法可以创建依赖于用户的 BAdI 实现吗?我的意思是,BAdI 有不同的实现,这些实现取决于登录的用户和调用特定事务的用户。

其他场景是不为该用户调用某些实现并为其他用户调用。有可能吗?

现在我正在使用简单的检查

0 投票
1 回答
696 浏览

sap - 以编程方式检索 SAP BPC 动态脚本源代码

我想知道如何检索 SAP BPC 包动态脚本的源代码。

我将尝试解释:在 SAP BPC 中,我可以编写一个名为 Dynamic Sc​​ript 的组件,我可以使用 Excel 插件保存源代码。

动态脚本与 SAP BPC“包”相关联,是一段可以调用 ABAP BADI 的代码。

我想知道的是这段代码是如何存储在BW中的,它是如何链接到相关包的,以及如何以编程方式检索它。

谢谢你。

0 投票
2 回答
581 浏览

abap - 以编程方式从 BW 检索 BAdI。如何?

我想以编程方式检索使用 BW 生成的 ABAP 程序的源代码。

我想要一个 ABAP 程序,它可以使用名称作为参数检索 BADI 源,然后将源保存在本地磁盘上,将每个 BADI 保存在具有程序名称的文件中。

0 投票
1 回答
3165 浏览

abap - 如何在 ME51n tcode 中的项目级别上使自定义字段可编辑?

我的要求是在交易 ME5xN 中的项目中添加一个自定义字段。

我发现出口 MEREQ001 有几个出口功能 - 但据我所知,它们并没有真正帮助我。

我在其中找到了一些 BADI,但我不知道如何使用它们,也不知道它们是否有用。

无论如何,在出口 MEREQ001 的文档中,我发现了一些有用的东西:它说通过创建表 CI_EBANDB 并向其中添加字段,这些字段被添加到表 EBAN 中(所以我不必做任何额外的工作)。

此外,此包含结构包含在用于显示项目的显示结构 MEREQ3211GRID 中。

因此我附加了 CI_EBANDB 和瞧:这是我的领域。

我现在的问题是该字段永远不可编辑,我不知道如何将其变为可编辑。

该表是一个 CONTROLS: xxx TYPE TABLEVIEW WITH SCREEN 3211。当我在屏幕循环中调用的模块中放置一个断点时,它永远不会命中它。

我看到在程序 SAPLMEGUI 中只有 1 个地方在调用 LVC_FIELDCATALOG_MERGE 时使用了这个结构,如果我修改结果的字段目录的属性,则输出在屏幕上可见....

底线:我不知道如何使我的字段可编辑。

PS 该字段在事务 ME51N 和 ME52N 中应始终可编辑。

0 投票
1 回答
1008 浏览

abap - 如何扩展标准屏幕 F-41

我需要将 T 代码 F-41 扩展为Xref1_HD, Xref2_HD

我知道有一个 BAdI,但我既没有使用过增强功能也没有使用过 BAdI,因为我还在学习。

有一个 Dynpro1300和 BAdI FI_HEADER_SUB_1300,但我真的不知道如何使用它。

我也在我的实现中找到SAPLBADI_EXAMPLE_1300并使用了它。是否可以创建一个Z程序和一个自己的 Dynpro 来使用它?

0 投票
2 回答
17097 浏览

abap - BAPI、BAdI、增强和修改有什么区别?

BAPI(业务应用程序编程接口)、BAdI(业务插件)、客户增强和客户修改之间有什么区别?

0 投票
2 回答
4339 浏览

abap - 通过 ME_PROCESS_REQ_CUST 使采购申请行无效

我试图阻止用户通过 BAdI 实施、检查行和帐户来保存采购申请。我抛出的错误消息不会停止保存过程,而且我找不到使该行无效的方法,就像我在 PO 中所做的那样。因此,可以保存包含错误数据的 PR。

我扩展了采购申请 BAdI 并IF_EX_ME_PROCESS_REQ_CUSTZCL_IM_EI_PROCESS_REQ_CUST. 在方法 中PROCESS_ITEMPROCESS_ACCOUNT我可以访问帐户和项目的多个导入。但与 PO 不同的是,我找不到使项目无效的方法。使用的所有类都没有提供该功能。

我在 BAPI 中可以访问的 PR 项目对象是接口的IF_PURCHASE_REQUISITION_ITEM,在函数池中实现为本地类MEREQ。与具有方法的 PO 项接口相比,此接口具有方法IS_VALID但不提供任何使无效的内容INVALIDATE

编辑

经过更多调试后,似乎失效是通过MY_STATE-BROKEN_RULES本地类的成员完成的MEREQ/LCL_REQ_ITEM。知道如何访问它吗?