SQL FMS在CRD1中填充唯一的地址ID

2020-09-21 15:43发布

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

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


专家

要集成到另一个系统中,我需要为业务合作伙伴上的所有地址都具有唯一的ID。 我创建了一个UDF,并用OCRD.CardCode-序列号-Ship/Bill to(C00002-3-B)的FMS填充了UDF。 此FMS适用于已经输入地址的当前BP,但是对于没有地址的BP,它将不会填充第一个。

非常感谢您的帮助,

马里

 SELECT前1个Concat(T0。[CardCode],'-',sub.num + 1,'-',T1。[AdresType])
 从OCRD T0内连接CRD1 T1到T0。[CardCode] = T1。[CardCode]和T1.AdresType = $ [CRD1.AdresType]左连接(选择(选择计数(T0。[CardCode]))
 从OCRD T0内联接CRD1 T1到T0。[CardCode] = T1。[CardCode]和T1.AdresType = $ [CRD1.AdresType]
 其中T0。[CardCode] = $ [$ 5.0])作为num,$ [$ 5.0]作为cc)sub on T0。[CardCode] = sub.cc
 T0。[CardCode] = $ [$ 5.0]
 

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

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


专家

要集成到另一个系统中,我需要为业务合作伙伴上的所有地址都具有唯一的ID。 我创建了一个UDF,并用OCRD.CardCode-序列号-Ship/Bill to(C00002-3-B)的FMS填充了UDF。 此FMS适用于已经输入地址的当前BP,但是对于没有地址的BP,它将不会填充第一个。

非常感谢您的帮助,

马里

 SELECT前1个Concat(T0。[CardCode],'-',sub.num + 1,'-',T1。[AdresType])
 从OCRD T0内连接CRD1 T1到T0。[CardCode] = T1。[CardCode]和T1.AdresType = $ [CRD1.AdresType]左连接(选择(选择计数(T0。[CardCode]))
 从OCRD T0内联接CRD1 T1到T0。[CardCode] = T1。[CardCode]和T1.AdresType = $ [CRD1.AdresType]
 其中T0。[CardCode] = $ [$ 5.0])作为num,$ [$ 5.0]作为cc)sub on T0。[CardCode] = sub.cc
 T0。[CardCode] = $ [$ 5.0]
 
付费偷看设置
发送
7条回答
空代码
1楼 · 2020-09-21 16:26.采纳回答

大家好,

我发现此FMS起作用并解决了未填充的第一条记录。

从以下位置选择前1个资源
 (选择
 Concat($ [$ 5.0],'-',sub.num + 1,'-(',$ [CRD1.AdresType],')')as res
 从
 OCRD T0
 内连接CRD1 T1
 上
 T0。[CardCode] = T1。[CardCode]和
 T1.AdresType = $ [CRD1.AdresType]
 左联接
 (选择(选择计数(T0。[CardCode])
 从OCRD T0内联接CRD1 T1到T0。[CardCode] = T1。[CardCode]和T1.AdresType = $ [CRD1.AdresType]
 T0上的T0。[CardCode] = $ [$ 5.0]),cc上的$ [$ 5.0] cc)sub.T0。[CardCode] = sub.cc
 T0。[CardCode] = $ [$ 5.0]
 联盟
 SELECT Concat($ [$ 5.0],'-',1,'-(',$ [CRD1.AdresType],')')as res)排序方式res DESC
 
软件心理学工程师
2楼-- · 2020-09-21 16:46

阿古斯丁

谢谢! 当我尝试使用此(或上一个)时,它给了我一个选择,以选择是否有多个"发往"或"发往"的地址。

感谢您的帮助。

Marli

宇峰科技
3楼-- · 2020-09-21 16:42

嗨,

FMS仅适用于当前表单,不会显示另一个屏幕。

此致

Nagarajan

nice_wp
4楼-- · 2020-09-21 16:20

您需要在查询BP时添加If条件,该BP不带地址且带地址

风早神人
5楼-- · 2020-09-21 16:45

嗨,马里,

请使用此查询获取FMS的唯一标识符:

 SELECT CAST(DATEPART(YEAR,GETDATE())AS NVARCHAR)
      + CAST(DATEPART(MONTH,GETDATE())AS NVARCHAR)
      + CAST(DATEPART(DAY,GETDATE())AS NVARCHAR)
      + CAST(DATEPART(HOUR,GETDATE())AS NVARCHAR)
      + CAST(DATEPART(MINUTE,GETDATE())AS NVARCHAR)
      + CAST(DATEPART(SECOND,GETDATE())AS NVARCHAR)
      + CAST(DATEPART(NANOSECOND,GETDATE())AS NVARCHAR)

(可选)您可以使用MS SQL Server Management Studio在master数据库中创建标量值函数,以便将来更轻松地重用。 在这种情况下,您可以使用以下语法:

 SELECT master.dbo.YourScalarValuedFunction()

此致

Johan

悠然的二货
6楼-- · 2020-09-21 16:30

尝试以下SQL语句:

如果(从crd1中选择count(*),其中卡代码= $ [$ 5.0]和adresType = $ [CRD1.AdresType])= 0
 开始
 SELECT $ [$ 5.0] +'-0-'+ $ [CRD1.AdresType]
 结束
 其他
 选择T0。[CardCode] +'-'+ cast((sub.num + 1)as nvarchar(5))+'-'+ T1。[AdresType]
 从OCRD T0内联接CRD1 T1到T0。[CardCode] = T1。[CardCode]和T1.AdresType = $ [CRD1.AdresType]
 左联接(选择(SELECT isull(count(T0。[CardCode]),0)
 从OCRD T0内联接CRD1 T1到T0。[CardCode] = T1。[CardCode]和T1.AdresType = $ [CRD1.AdresType]
 T0上的T0。[CardCode] = $ [$ 5.0]),cc上的$ [$ 5.0] cc)sub.T0。[CardCode] = sub.cc
 T0。[CardCode] = $ [$ 5.0]
 

亲切的问候

奥古斯丁

7楼-- · 2020-09-21 16:32

尝试以下SQL语句:

如果(从crd1中选择count(*),其中卡代码= $ [$ 5.0]和adresType = $ [CRD1.AdresType])= 0
 开始
 SELECT $ [$ 5.0] +'-0-'+ $ [CRD1.AdresType]
 结束
 其他
 选择T0。[CardCode] +'-'+ cast((sub.num + 1)as nvarchar(5))+'-'+ T1。[AdresType]
 从OCRD T0内联接CRD1 T1到T0。[CardCode] = T1。[CardCode]和T1.AdresType = $ [CRD1.AdresType]
 左联接(选择(SELECT isull(count(T0。[CardCode]),0)
 从OCRD T0内联接CRD1 T1到T0。[CardCode] = T1。[CardCode]和T1.AdresType = $ [CRD1.AdresType]
 T0上的T0。[CardCode] = $ [$ 5.0]),cc上的$ [$ 5.0] cc)sub.T0。[CardCode] = sub.cc
 T0。[CardCode] = $ [$ 5.0]
 

亲切的问候

AgustínMarcos Cividanes

一周热门 更多>