将UDF添加到查询

2020-09-26 20:46发布

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

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


大家好,

我想知道如何将以下UDF添加到查询中。 我们使用此自由文本字段作为准确的交货日期,有没有一种方法可以将其转换为以下UDF的"下一个交货日期",并在以下查询中显示为该列,该UDF仅在采购订单中使用。

选择t0.Cardcode作为" Customer#",t0.Cardname作为" Customer Name",t0.DocNum作为" SO#",t1.ItemCode,t0.DocDate,t0.DocDueDate,t1.OpenQty,t1.OpenQty * T1.price AS'Open Value',t2.on from dbo.ORDR t0 inner JOIN dbo.RDR1 t1 on t1.docentry = t0.docentry INNER JOIN OITM t2 on t1.itemcode = t2.itemcode WHERE t1.LineStatus =' O'AND t1.OpenQty> 0

(8.3 kB)

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

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


大家好,

我想知道如何将以下UDF添加到查询中。 我们使用此自由文本字段作为准确的交货日期,有没有一种方法可以将其转换为以下UDF的"下一个交货日期",并在以下查询中显示为该列,该UDF仅在采购订单中使用。

选择t0.Cardcode作为" Customer#",t0.Cardname作为" Customer Name",t0.DocNum作为" SO#",t1.ItemCode,t0.DocDate,t0.DocDueDate,t1.OpenQty,t1.OpenQty * T1.price AS'Open Value',t2.on from dbo.ORDR t0 inner JOIN dbo.RDR1 t1 on t1.docentry = t0.docentry INNER JOIN OITM t2 on t1.itemcode = t2.itemcode WHERE t1.LineStatus =' O'AND t1.OpenQty> 0

(8.3 kB)
付费偷看设置
发送
3条回答
SAP砖家
1楼-- · 2020-09-26 21:33

嗨,詹姆斯,

如果此字段仅用于日期,则应将数据类型更改为日期。

和/或,如果此字段用于其他类型的数据(实际的自由文本),则应创建数据类型为date的新UDF,将所有日期复制到该字段中,然后在查询中使用。

因为数据类型的自由文本字段在技术上可以包含任何内容,这意味着人为错误的风险太大,无法在任何类型的公式中使用此字段。 以屏幕快照中的日期为例:2017.09.25。 既然技术上已允许所有错误,那么写下错误是多么容易:17.09.25或2017,09,25或2017.90.25或2017. 09.25或201709.25或2017.9.25。 那只是我职业生涯中遇到的几种写作错误。 您可能会注意到,大多数这些错误乍一看都没有发现,但是在任何需要日期的公式中,这些错误都会引起错误。

如果您只需要在查询结果中显示此字段,而无需其他任何内容,则只需将其添加到查询中即可。

选择t0.Cardcode为" Customer#"
      ,t0.Cardname作为"客户名称"
      ,t0.DocNum为" SO#"
      ,t1.ItemCode
      ,t0.DocDate
      ,t0.DocDueDate
      ,t1.OpenQty
      ,t1.OpenQty * T1.price AS'开放价值'
      ,t2.onhand
      ,ISNULL((选择max(ISNULL(U_Your_UDF_I_Dont_Know_The_Name,DocDueDate)))
                来自OPOR
                     OPOR.DocEntry上的内部联接POR1 = POR1.DocEntry
                                    和POR1.ItemCode = t1.ItemCode)
              ,DATEADD(YEAR,99,GETDATE()))AS [下一个交货日期]
 从dbo.ORDR t0
      t1.docentry = t0.docentry上的NERBOIN dbo.RDR1 t1
      t1.itemcode = t2.itemcode上的INNER JOIN OITM t2
 其中t1.LineStatus ='O'和t1.OpenQty> 0 

请注意,此解决方案对如何使用UDF及其内容进行了一些假设。

此致

Johan

四川大学会员
2楼-- · 2020-09-26 21:38

嗨,詹姆斯,

请详细说明一下吗?

" ...输入UDF-FreeTxt ... "是什么意思?

您从哪里得到错误,这是什么?

此致

Johan

95年老男孩
3楼-- · 2020-09-26 21:40

谢谢Johan,

不幸的是,当我输入UDF-FreeTxt时,出现错误。

一周热门 更多>