UDT-无对象-B1if

2020-08-24 07:33发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好,

我成功地用B1if复制了UDO,但是我无法使用类型为"无对象"的用户定义表来做到这一点。

请,有人可以帮助我吗?

感谢您能提供的任何帮助。

费尔南达

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好,

我成功地用B1if复制了UDO,但是我无法使用类型为"无对象"的用户定义表来做到这一点。

请,有人可以帮助我吗?

感谢您能提供的任何帮助。

费尔南达

付费偷看设置
发送
4条回答
Baoming ROSE
1楼 · 2020-08-24 08:01.采纳回答

您好Fernanda,

对于UDT,您可以使用标准的B1事件机制。 只需激活B1EventMonitor,您将看到模式为的事件。

这是一个称为@INBOUND的UDT的INBOUND定义的示例:

 <入站>  <方法>检索  JDBC   SQL     select * 从[@INBOUND]中,其中代码='$ key'     SAP Business One  异步  B1Event   INBOUND   B1 Event   na     

UDT的出站定义-如果您没有基于UDT定义的UDO-通过SQL为B1:

    SAP Business One   B1i SQL    <  OUT_B1>  单个    

您的atom0应该具有以下结构(可以在B1i联机帮助中的B1出站短语下找到):


...


...


...


...


...

B1out/@ type

必填根标记B1out,值为b1isql的必填属性

SQL/@ sqlmode

这是必需标记SQL。 sqlmode 属性也是必需的。 将该值设置为" single"或" multiple"。 此标志与处理多个SQL语句有关。 默认值为"多个"。

  • 系统使用分号连接多个SQL语句。 系统将这条SQL语句移交给数据库。 大多数数据库系统都支持此功能。
  • 在这种模式下,B1i依次处理每个SQL语句。 如果目标数据库系统不支持以分号分隔的多个SQL语句,则这是必需的。 例如,对于DB2数据库系统就是如此。

"表格"是固定值。 使用它来定义数据库表记录。 您可以定义多个标签。 您可以嵌套标签以表示父子关系。

表/@ id

" id"属性指定数据库表的名称。

表/@键列表

" keylist"属性表示主键字段名称的规范。 如果主键包含多个串联的字段值,请输入所有字段名称的逗号分隔列表。

表/@任务

指定数据库中的操作。

  • task =" A"(自动检测)

自动检测确定是否需要更新或插入。 系统使用主键的定义分别检测每个记录的正确操作。

  • task =" I"(插入)
    该操作为插入。 如果记录已经存在,则会导致重复的条目或数据库中唯一的键约束。
  • task =" U"(更新)
    操作正在更新。 如果记录不存在,则系统不会插入任何记录。
  • task =" D"(删除)
    该操作已删除。 如果该记录不存在,则什么也不会发生。

表/@ del

如果操作为" D",请定义一个逗号分隔的表名列表,其中会发生其他删除。 此级联删除的前提是相同的主键。

字段

"字段"是用于在数据库表记录中定义字段的固定值。 您可以定义多个这些标签。

字段/@ id

" id"属性指定数据库表字段的名称。

字段/@值

"值"属性包含字段的值。

字段/@ wrapchar

默认情况下,该值由撇号字符引起来。 如果您不想这样做,例如,如果该值包含数字,则将wrapchar设置为 false 。

最好的问候

巴斯蒂安

P.S .:当然,应该非常小心地通过SQL语句插入UDT。

槿木_熙
2楼-- · 2020-08-24 07:43

尊敬的专家,

我可以使用相同的出站方法(B1isql)插入/更新UDO,并且仍然是"符合SAP规范"吗? 我知道通常我可以对UDO使用B1服务方法,但是B1isql的运行速度更快,并且还支持父子表关系。

谢谢大卫

悠然的二货
3楼-- · 2020-08-24 07:53

嗨!

您解决了问题吗?,

谢谢。

CJones
4楼-- · 2020-08-24 07:50

嗨,费尔南达,

我认为您是有原因的,我已经阅读了几次,并且您可以在更新UDT时直接使用insert进行修改。

谢谢

一周热门 更多>