查询从AR发票到交货到销售订单的链接

2020-08-31 05:27发布

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

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


你好

我已经开始查询(在查询生成器中)我需要的报告,该报告从OINV和INV1中提取了大多数信息。 我还需要从销售订单(ORDR)和交货(ODLN)中获取日期。 我尝试链接到这两个文件均未成功。 我的第二个问题是按日期选择记录。 每当我在查询中包含"%"时,都会收到以下错误消息:

" [Microsoft] [SQL Server Native Client 11.0] [SQL Server]从字符串转换日期和/或时间时,转换失败。"空白协议"(OOAT)"

任何链接文件和解决选择问题的帮助将不胜感激。 查询如下:

选择

--->字段1-9-卖方信息:
'MFR223''1-卖方编号',T4。[PrintHeadr]'2-卖方名称',T5。[ 街],T5的" 3-卖方添加线1"。[街区] T5的" 4-卖方出售线2",[城市] T5的" 5-卖方城市",[州]" 6-卖方的州/省", T5。[ZipCode]" 7-卖家邮递区号",当T5时为案例。[Country] ='US'THEN然后在T5。[Country] ='CA'THEN'CAN'ELSE T5。[Country] ] END'8-Seller Country',T5。[GlblLocNum]'9-Seller GLN',

--->字段10-16-从信息中发送:
T3。[Street] '10 T3的Add-Seller船。[块] T3的Add2的11艘船。[City] T3的12个城市"船市"。[州]" State/Province的13船员"。 ,T3。[邮政编码]" 14个邮递船从邮政编码",在T3时为例。[Country] ='US'THEN在T3时,[Country] ='CA'THEN'CAN'ELSE T3 。[国家/地区] END'来自国家/地区的15个卖方船',T3。[GlblLocNum]'来自GLN的16个卖方船',

--->字段17-25-运至信息:
T1。[CardCode] '17 -Buyer No)',T1。[ShipToCode] '18 -Buyer Ship to Name',T2。[StreetS] '19买方船到Addr1',T2。[BlockS] '20买方船到Add2',T2。[CityS] '21买方船到City',T2。[StateS] '22买方船到State/Prov。",T2。[ZipCodeS]"将23买方运送到邮递区号",当T2时为案例。[CountryS] ='US'THEN T2。[CountryS] ='CA'THEN'CAN时 'ELSE T2。[国家/地区] END '24买方船运到国家/地区',T2。[GlbLocNumS] '25买方船运到GLN',

--->字段26-31-开票给信息:
T2。[StreetB]'向Addr1的26个买方帐单,T2。[BlockB]'向Addr2的27个买方帐单',T2。[CityB]'到城市的28个买方帐单',T2。[StateB] T2的"向州/省的29个买方帐单"。[ZipCodeB] T2的情况为" 30个买方的邮递区号"。[CountryB] ='US',然后T2时为'USA'。 ] ='CA'然后'CAN'ELSE T2。[CountryB]结束"向国家/地区的31个买方帐单",

--->字段32-38-发票标题信息:
T1。[ DocNum] '32-发票编号',CONVERT(varchar,T1。[TaxDate],101)'33-发票日期',CONVERT(varchar,T1。[DocDueDate],101)为'* 34-Need ODLN> DocDueDate( 发运日期)",
T1。[NumAtCard] AS '35 -PO Number',' xx/xx/20xx'AS'* 36-Need ORDR> TaxDate(PO Date)',
例T0时的[Currency] ='$'THEN T0时的'USD'。[Currency] ='CAD'THEN 'CAN'ELSE T0。[Currency] END '37 -Currency',
案例T1。[U_acDeliveryMode] ='H'THEN'Y'ELSE'N'END '38 -Backhaul Flag',
< br> --->字段39-56-发票详细信息:
T0。[LineNum] +1 '39 -Line No',T0。[Dscription] '40 -Product Name',T0。[ItemCode]' 41个产品代码",T0。[U_acGTIN]" 42-GTIN"," 8"," 43个包装数量"," 80盎司"," 44个包装尺寸","地铁"," 45个产品品牌","先生" 。 芯片的'46制造商',T0。[ItemCode] '47 -Mfg产品代码',
CONCAT(T3。[Address2],'/',T3。[City],',',T3。[州 ])'48 -Mfg.Supply Loc。',T3。[GlblLocNum] '49 -Supply Plant GLN',
FORMAT(T0。[Quantity],'#####。####')' 50数量",T0。[UomCode]" 51数量UOM","" 52-Del Rate"," 53-Frt"。 允许',FORMAT(T0。[价格] + T0.U_acSOUMItemFrt,'###。0000')'* 54-净价?',T0。[UomCode] '55-净价UOM',
案例 T0。[Currency] ='$'THEN FORMAT(T0.GTotal + T0.U_acSOItemFrt,'#。00')ELSE FORMAT(T0.GTotalFC + T0.U_acSOItemFrt,'#。00')END'* 56-扩展成本 ***?'

--->数据源:FROM INV1 T0内部联接OINV T1在T0上。[DocEntry] = T1。[DocEntry]内部联接INV12 T2在T1上。[DocEntry] = T2。[DocEntry] T3上的内部联接T3。[WhsCode] = T3。[WhsCode],OADM T4,ADM1 T5

--->条件:
WHERE
T1。[ DocType] ='I'AND(T1。[CardCode] ='C0072'或T1。[CardCode] ='C0073')AND
取消='N'AND
(T1。[DocDate]> =' 01/01/2018'和T1。[DocDate] <= '12/31/2019')
-这不起作用->>甚至不能在此注释中包含百分号。>>> (T1。[DocDate]> ='[pct0]'AND T1。[DocDate] <='[pct1]'))

--->排序顺序
ORDER BY T1。[DocNum], T0。[LineNum]

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

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


你好

我已经开始查询(在查询生成器中)我需要的报告,该报告从OINV和INV1中提取了大多数信息。 我还需要从销售订单(ORDR)和交货(ODLN)中获取日期。 我尝试链接到这两个文件均未成功。 我的第二个问题是按日期选择记录。 每当我在查询中包含"%"时,都会收到以下错误消息:

" [Microsoft] [SQL Server Native Client 11.0] [SQL Server]从字符串转换日期和/或时间时,转换失败。"空白协议"(OOAT)"

任何链接文件和解决选择问题的帮助将不胜感激。 查询如下:

选择

--->字段1-9-卖方信息:
'MFR223''1-卖方编号',T4。[PrintHeadr]'2-卖方名称',T5。[ 街],T5的" 3-卖方添加线1"。[街区] T5的" 4-卖方出售线2",[城市] T5的" 5-卖方城市",[州]" 6-卖方的州/省", T5。[ZipCode]" 7-卖家邮递区号",当T5时为案例。[Country] ='US'THEN然后在T5。[Country] ='CA'THEN'CAN'ELSE T5。[Country] ] END'8-Seller Country',T5。[GlblLocNum]'9-Seller GLN',

--->字段10-16-从信息中发送:
T3。[Street] '10 T3的Add-Seller船。[块] T3的Add2的11艘船。[City] T3的12个城市"船市"。[州]" State/Province的13船员"。 ,T3。[邮政编码]" 14个邮递船从邮政编码",在T3时为例。[Country] ='US'THEN在T3时,[Country] ='CA'THEN'CAN'ELSE T3 。[国家/地区] END'来自国家/地区的15个卖方船',T3。[GlblLocNum]'来自GLN的16个卖方船',

--->字段17-25-运至信息:
T1。[CardCode] '17 -Buyer No)',T1。[ShipToCode] '18 -Buyer Ship to Name',T2。[StreetS] '19买方船到Addr1',T2。[BlockS] '20买方船到Add2',T2。[CityS] '21买方船到City',T2。[StateS] '22买方船到State/Prov。",T2。[ZipCodeS]"将23买方运送到邮递区号",当T2时为案例。[CountryS] ='US'THEN T2。[CountryS] ='CA'THEN'CAN时 'ELSE T2。[国家/地区] END '24买方船运到国家/地区',T2。[GlbLocNumS] '25买方船运到GLN',

--->字段26-31-开票给信息:
T2。[StreetB]'向Addr1的26个买方帐单,T2。[BlockB]'向Addr2的27个买方帐单',T2。[CityB]'到城市的28个买方帐单',T2。[StateB] T2的"向州/省的29个买方帐单"。[ZipCodeB] T2的情况为" 30个买方的邮递区号"。[CountryB] ='US',然后T2时为'USA'。 ] ='CA'然后'CAN'ELSE T2。[CountryB]结束"向国家/地区的31个买方帐单",

--->字段32-38-发票标题信息:
T1。[ DocNum] '32-发票编号',CONVERT(varchar,T1。[TaxDate],101)'33-发票日期',CONVERT(varchar,T1。[DocDueDate],101)为'* 34-Need ODLN> DocDueDate( 发运日期)",
T1。[NumAtCard] AS '35 -PO Number',' xx/xx/20xx'AS'* 36-Need ORDR> TaxDate(PO Date)',
例T0时的[Currency] ='$'THEN T0时的'USD'。[Currency] ='CAD'THEN 'CAN'ELSE T0。[Currency] END '37 -Currency',
案例T1。[U_acDeliveryMode] ='H'THEN'Y'ELSE'N'END '38 -Backhaul Flag',
< br> --->字段39-56-发票详细信息:
T0。[LineNum] +1 '39 -Line No',T0。[Dscription] '40 -Product Name',T0。[ItemCode]' 41个产品代码",T0。[U_acGTIN]" 42-GTIN"," 8"," 43个包装数量"," 80盎司"," 44个包装尺寸","地铁"," 45个产品品牌","先生" 。 芯片的'46制造商',T0。[ItemCode] '47 -Mfg产品代码',
CONCAT(T3。[Address2],'/',T3。[City],',',T3。[州 ])'48 -Mfg.Supply Loc。',T3。[GlblLocNum] '49 -Supply Plant GLN',
FORMAT(T0。[Quantity],'#####。####')' 50数量",T0。[UomCode]" 51数量UOM","" 52-Del Rate"," 53-Frt"。 允许',FORMAT(T0。[价格] + T0.U_acSOUMItemFrt,'###。0000')'* 54-净价?',T0。[UomCode] '55-净价UOM',
案例 T0。[Currency] ='$'THEN FORMAT(T0.GTotal + T0.U_acSOItemFrt,'#。00')ELSE FORMAT(T0.GTotalFC + T0.U_acSOItemFrt,'#。00')END'* 56-扩展成本 ***?'

--->数据源:FROM INV1 T0内部联接OINV T1在T0上。[DocEntry] = T1。[DocEntry]内部联接INV12 T2在T1上。[DocEntry] = T2。[DocEntry] T3上的内部联接T3。[WhsCode] = T3。[WhsCode],OADM T4,ADM1 T5

--->条件:
WHERE
T1。[ DocType] ='I'AND(T1。[CardCode] ='C0072'或T1。[CardCode] ='C0073')AND
取消='N'AND
(T1。[DocDate]> =' 01/01/2018'和T1。[DocDate] <= '12/31/2019')
-这不起作用->>甚至不能在此注释中包含百分号。>>> (T1。[DocDate]> ='[pct0]'AND T1。[DocDate] <='[pct1]'))

--->排序顺序
ORDER BY T1。[DocNum], T0。[LineNum]

付费偷看设置
发送
8条回答
四川大学会员
1楼-- · 2020-08-31 06:09

您好 David Goldstein

我快速浏览了整个查询。 建议进行一些更改,如下所述。

  • 请参阅--->字段32-38-发票标题信息:请对所有日期字段一致使用"转换101"格式,然后重试。 (TaxDate,DocDueDate等)
  • 引用->条件用" T1。[DocDate]> = [%0]"替换" T1。[DocDate]> ='[pct0]'和T1。[DocDate] <='[pct1]'""。 AND T1。[DocDate] <= [%1]"。 在查询中添加时,请删除双引号。

请随时向我们发布任何新更新,以便我们解决您的问题。

祝福与问候,

Sam

我是小鹏鹏啊
2楼-- · 2020-08-31 06:10

感谢Sam,但没有用。

第一部分-字段32-38-引用的两个日期字段均使用"转换101"格式。 另一个日期参考是一个注释,直到我能弄清楚如何链接到交货来检索它以及如何链接到销售订单来检索该日期。

第二部分-条件-我试过单引号,无引号和双引号。 每当查询中有%符号时,我都会收到错误消息-这就是为什么我使用字符" pct"的原因,这样我就可以在不选择日期的情况下运行查询,而导致错误消息。

打个大熊猫
3楼-- · 2020-08-31 05:51
< p> HI,

直到现在,我从未在查询中使用[pct1],仅在注释行中使用了它,以提醒自己自己正在尝试执行的操作。 我将对其进行测试并在下面报告结果。

迄今为止,我们尚未在SAP中使用任何总括协议功能,这使得错误消息为何引用总括协议变得更加混乱。 "一揽子协议"协议不太可能涉及我们的任何UDT,但我也会对此进行测试。

测试结果:

(1)-硬编码日期-代码:

--->条件部分:

其中T1。[DocType] ='I'AND(T1。[CardCode] ='C0072'或T1。[CardCode] ='C0073')AND CANCELED ='N'AND(T1。[DocDate ]> = '01/01/2018'AND T1。[DocDate] <= '12/31/2019')

系统消息日志的结果:操作成功完成[消息200-48]

--------------------------------------------

(2)-在查询中使用[%0]和[%1]而不是硬编码日期-代码:

--->条件部分:

其中T1。[DocType] ='I'AND(T1。[CardCode] ='C0072'或T1。[CardCode] ='C0073')AND CANCELED ='N'AND(T1。[DocDate ]> = [%0]和T1。[DocDate] <= [%1])

系统消息日志的结果:1)。 [Microsoft] [SQL Server Native Client 11.0] [SQL Server]" T1"附近的语法不正确。 2)。 [Microsoft] [SQL Server Native Client 11.0] [SQL Server]声明"空白协议"(OOAT)无法准备。

--------------------------------------------

(3)-在查询中使用[pct0]和[pct1]代替了[%0]和[%1]而不是硬编码日期-代码:

--->条件部分:

其中T1。[DocType] ='I'AND(T1。[CardCode] ='C0072'或T1。[CardCode] ='C0073')AND CANCELED ='N'AND(T1。[DocDate ]> = [pct0]和T1。[DocDate] <= [pct1])

系统消息日志的结果: 1)。 [Microsoft] [SQL Server本机客户端11.0] [SQL Server]无效的列名'pct0'。 2)。 [Microsoft] [SQL Server本机客户端11.0] [SQL Server]无效的列名'pct1'。 3)。 [Microsoft] [SQL Server Native Client 11.0] [SQL Server]声明'Blanket Agre

--------------------------------------------

通过进一步的测试和更改,我能够使*大部分*的查询正常工作,但是其中一些更改是不可接受的。

对文件OINV的引用存在一些问题。 这是我对查询所做的更改:

--------------------------------------------

(1)为了更容易地通过一次删除一个字段来进行测试,在确定OINV是罪魁祸首之后,我将对OINV(T1。)的每个引用单独放在一行上。

--------------------------------------------

(2)在标记为字段17-25的部分中,我必须删除T1左侧的空白。[ShipToCode](字段#18)

--------------------------------------------

(3)我从T1.TaxDate(字段#33)中删除了CONVERT命令(这是不可接受的,因为我需要将日期格式设置为" mm/dd/yyyy"

--------------------------------------------

(4)我从T1.DocDueDate(字段#34)中删除了CONVERT命令(这可能是无关紧要的,因为我需要从文件ODLN中获取DocDueDate,但我尚不知道如何检索它,它也必须格式化为 " mm/dd/yyyy")

--------------------------------------------

(5)我从T1中删除了CASE命令。[U_acDeliveryMode](字段#38)(此字段是UDF)

------------------------------

测试涉及一次删除一个字段,直到查询生效,然后再将它们重新添加,直到找到导致错误的行为止。

------------------请参阅"之前和之后"屏幕截图------------------

clever101
4楼-- · 2020-08-31 06:06

以下是一些示例。 我的大型查询不喜欢%符号。 简单的方法就可以了。

SAP小黑
5楼-- · 2020-08-31 05:46

嗨, David Goldstein

关于您在第一部分中的评论:已记录。

关于您在第二部分中的评论:请参考下面的屏幕快照,该屏幕快照说明了SAP Business One中查询中%符号的使用。 您可以在Business One中尝试相同的查询,并检查是否收到任何错误消息。

查询:在OINV T0的T0中选择SELECT T0。[DocDate]。[DocDate] = [%0]

屏幕截图:

如果您可以共享错误消息的详细信息,则将有助于您了解根本原因。

最良好的祝愿

Sam

南山jay
6楼-- · 2020-08-31 05:52

您好 David Goldstein

感谢您提供详细的屏幕截图; 它有助于了解当前的问题。

在查询中使用[pct1]时是否有屏幕截图? 只想知道使用[pct1]是否会产生Blanket Agreement错误或任何其他错误。

一揽子协议错误是否与查询中使用的任何UDT有关? 可能值得尝试删除UDT,然后检查查询是否正确执行。

如果您对查询中的固定值进行了硬编码,那么很高兴知道您的查询可以成功执行。

我认为,尽管两者之间有几个故障排除阶段,但我们正在朝着正确的方向前进。

最良好的祝愿

Sam

一周热门 更多>