通过字段按顺序在CDS视图上进行ABAP选择

2020-09-21 09:12发布

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

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


因为我必须将abap代码迁移到HANA。 现有ECC系统的COSP表上有一条Select语句,如下所示。

选择*从COSP到表ITAB的按主键排序。

现在我必须使其与HANA兼容。 因此,我将其编写如下并可以正常工作。但是在此处编写所有字段并不是一个好习惯。 迁移到HANA时是否可以使用任何替代来处理"按主键订购"?

从* mansp中选择*从mansp到表itab顺序

LEDNR
OBJNR
GJAHR
WRTTP
VERSN
KSTAR
HRKFT
VRGNG
VBUND
PARGB
BEKNZ
TWAER
> PERBL
MEINH
WTG001
WTG002
WTG003
WTG004
WTG005
WTG006
WTG007
WTG008
WTG009
WTG010
WTG011
WTG012
WTG013
WTG014
WTG015
WTG016
WOG001
WOG002
WOG003
WOG004
WOG005
WOG006
WOG007
WOG008
WOG009
WOG010
WOG011
WOG012
WOG013
WOG014
WOG015
WOG016
WKG001
WKG002
WKG003
WKG004
WKG005
WKG006
WKG007
WKG008
WKG009
WKG010
WKG011
WKG012
WKG013
WKG014
WKG015
WKG016
> WKF001
WKF002
WKF003
WKF004
WKF005
WKF006
WKF007
WKF008
WKF009
WKF010
WKF011
WKF012
WKF013
WKF014
WKF015
WKF016
PAG001
PAG002
PAG003
PAG004
PAG005
PAG006
PAG007
PAG008
PAG009
> PAG010
PAG011
PAG012
PAG013
PAG014
PAG015
PAG016
MEG001
MEG002
MEG003
MEG004
MEG005
MEG006
MEG007
MEG008
MEG009
MEG010
MEG011
MEG012
MEG013
MEG014
MEG015
MEG016
MEF001
MEF002
MEF003
MEF004
MEF005
MEF006
MEF007
> MEF008
MEF009
MEF010
MEF011
MEF012
MEF013
MEF014
MEF015
MEF016
MUV001
MUV002
MUV003
MUV004
MUV005
MUV006
MUV007
MUV008
MUV009
MUV010
MUV011
MUV012
MUV013
MUV014
MUV015
MUV016
BELTP
TIMESTMP
BUKRS
FKBER

GEBER
GRANT_NBR
BUDGET_PD

是否可以替换上面的代码,而我们可以使用一行语句替换所有上面的关键字段? 还是从等效CDS视图中选择数据时还有其他方法来处理"按主键排序"吗?

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

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


因为我必须将abap代码迁移到HANA。 现有ECC系统的COSP表上有一条Select语句,如下所示。

选择*从COSP到表ITAB的按主键排序。

现在我必须使其与HANA兼容。 因此,我将其编写如下并可以正常工作。但是在此处编写所有字段并不是一个好习惯。 迁移到HANA时是否可以使用任何替代来处理"按主键订购"?

从* mansp中选择*从mansp到表itab顺序

LEDNR
OBJNR
GJAHR
WRTTP
VERSN
KSTAR
HRKFT
VRGNG
VBUND
PARGB
BEKNZ
TWAER
> PERBL
MEINH
WTG001
WTG002
WTG003
WTG004
WTG005
WTG006
WTG007
WTG008
WTG009
WTG010
WTG011
WTG012
WTG013
WTG014
WTG015
WTG016
WOG001
WOG002
WOG003
WOG004
WOG005
WOG006
WOG007
WOG008
WOG009
WOG010
WOG011
WOG012
WOG013
WOG014
WOG015
WOG016
WKG001
WKG002
WKG003
WKG004
WKG005
WKG006
WKG007
WKG008
WKG009
WKG010
WKG011
WKG012
WKG013
WKG014
WKG015
WKG016
> WKF001
WKF002
WKF003
WKF004
WKF005
WKF006
WKF007
WKF008
WKF009
WKF010
WKF011
WKF012
WKF013
WKF014
WKF015
WKF016
PAG001
PAG002
PAG003
PAG004
PAG005
PAG006
PAG007
PAG008
PAG009
> PAG010
PAG011
PAG012
PAG013
PAG014
PAG015
PAG016
MEG001
MEG002
MEG003
MEG004
MEG005
MEG006
MEG007
MEG008
MEG009
MEG010
MEG011
MEG012
MEG013
MEG014
MEG015
MEG016
MEF001
MEF002
MEF003
MEF004
MEF005
MEF006
MEF007
> MEF008
MEF009
MEF010
MEF011
MEF012
MEF013
MEF014
MEF015
MEF016
MUV001
MUV002
MUV003
MUV004
MUV005
MUV006
MUV007
MUV008
MUV009
MUV010
MUV011
MUV012
MUV013
MUV014
MUV015
MUV016
BELTP
TIMESTMP
BUKRS
FKBER

GEBER
GRANT_NBR
BUDGET_PD

是否可以替换上面的代码,而我们可以使用一行语句替换所有上面的关键字段? 还是从等效CDS视图中选择数据时还有其他方法来处理"按主键排序"吗?

付费偷看设置
发送
6条回答
亦是此间程序员
1楼-- · 2020-09-21 09:28

ORDER BY PRIMARY KEY不需要表中的每个字段,仅使用主键(AFAIK前14个字段)

槿木_熙
2楼-- · 2020-09-21 09:34

从COSP到itab的SELECT *已使用 在不在HANA上的现有系统中。 我必须将此select语句替换为HANA框以纠正该错误。 请注意,旧的COSP表会在HANA系统中以相同的名称转换为CDS视图,并且从CDS视图中选择数据时ORDER BY PRIMARY KEY不起作用。

因此,我按如下所示转换了该select语句,并且该语句正在运行。 我在ORDER BY子句下使用了以下字段,因为它们在CDS视图中被定义为KEYS。 我的问题是->在下面的select语句中写入所有字段是一个很长的过程,而不是一个好习惯。 有什么方法可以编写此SELECT语句来避免冗长的语句并遵循良好的做法?

从* mansp中选择*从mansp到表itab顺序

LEDNR
OBJNR
GJAHR
WRTTP
VERSN
KSTAR
HRKFT VRGNG BUND RGB> BEKNZ TWAER
> PERBL
MEINH
WTG001
WTG002
WTG003
WTG004
WTG005
WTG006
WTG007
WTG008
WTG009
WTG010
WTG011
WTG012
WTG013
WTG014
WTG015
WTG016
WOG001
WOG002
WOG003
WOG004
WOG005
WOG006 WOG007
> WOG008
WOG009
WOG010
WOG011
WOG012
WOG013 WOG014
WOG015
WOG016 001KG
WKG002 003KG
WKG004
WKG005
WKG006
WKG007
WKG008
WKG009
WKG010
WKG011 KGK012
WKG013 KGK014
WKG015 KGK016
> WKF001
WKF002
WKF003
WKF006
WKF007
WKF008
WKF009
WKF010
WKF011 FKF012
WKF014
WKF015
WKF016
PAG001
PAG002
PAG003
PAG004
PAG005
PAG006
PAG007 008>
PAG009
> PAG010
PAG011
PAG012 PAG013
PAG014
PAG015 PAG016
MEG001 002> MEG003 003> MEG004 005> MEK005
MEG007
M EG008,MEG009,MEG010,MEG011,MEG012,MEG013,MEG014,MEG015,MEG016,MEF001,MEF002,MEF003,MEF004 < br> MEF005
MEF006
MEF007
MEF008
MEF009 MEF010
MEF011 012 MUV001
MUV002
MUV003
MUV004
MUV005
MUV006
MUV007
MUV008
MUV009
MUV010
MUV011
MUV012
MUV013 < br> MUV014
MUV015
MUV016
BELTP
TIMESTMP
BUKRS
FKBER
SEGMENT
GEBER
GRANT_NBR
BUDGET_PD

落灬小鱼
3楼-- · 2020-09-21 09:38

Deepak,您好

您不必在HANA中将所有字段按语句按顺序排列。

如果要用主键替换order,则只需要在order by语句中指定键字段。

根据COSP表的DDL源,已将关键字段定义为仅perbl字段。

 Metadata.ignorePropagatedAnnotations:正确
 @ AccessControl.authorizationCheck:#NOT_REQUIRED
 @ ObjectModel.usageType.serviceQuality:#P
 @ AbapCatalog.preserveKey:是
 将视图v_cosp_view定义为
     选择
        key mandt,key lednr,key objnr,key gjahr,key wrttp,key versn,
        key kstar,key hrkft,key vrgng,key vbund,key pargb,key beknz,
 @ Semantics.currencyCode
        关键时刻
        关键性能
        我
        wtg001,
        wtg002,
 
Alawn_Xu
4楼-- · 2020-09-21 09:22

嗨迪帕克,

在SE11中打开CDS视图并检查DDL源。 您可以双击以查看CDS视图详细信息,或在ADT中使用DDL源名称打开它。

何必丶何苦呢
5楼-- · 2020-09-21 09:38

Hi Himanshu,

感谢您的回复。

1)我在COSP的DDL源中看不到密钥。 下面是一段代码,我正在打开DDL源:V_COSP_DDL。

2)是否有任何表可让我通过此CDS视图/DSP的COSP源并获取关键字段? 我可以看到CDS视图COSP中的所有字段都是关键字段。

 @ AbapCatalog.sqlViewName:'COSP'
 @ EndUserText.label:" CO对象:外部过帐的成本总计(" COSP")"
 将视图v_cosp_view定义为
    选择
        mandt,lednr,objnr,gjahr,wrttp,versn,
        kstar,hrkft,vrgng,vbund,pargb,beknz,
 @ Semantics.currencyCode

        wa

        perbl,

        我

        wtg001,

        wtg002,

        wtg003,

        wtg004,

        wtg005,

        wtg006,

        wtg007,

        wtg008,

        wtg009,

        wtg010,

        wtg011,

        wtg012,

        wtg013,
小c菟菟
6楼-- · 2020-09-21 09:23

SELECT *从COSP到itab ORDER BY PRIMARY KEY已在HANA以外的现有系统中使用。 我必须将此select语句替换为HANA框以纠正该错误。 请注意,旧的COSP表在同名HANA系统中将转换为CDS视图,并且从CDS视图中选择数据时ORDER BY PRIMARY KEY不起作用。

因此,我按如下所示转换了该select语句,并且该语句正在运行。 我在ORDER BY子句下使用了以下字段,因为它们在CDS视图中被定义为KEYS。 我的问题是->在下面的select语句中写入所有字段是一个很长的过程,而不是一个好习惯。 有什么方法可以编写此SELECT语句来避免冗长的语句并遵循良好的做法?

从* mansp中选择*从mansp到表itab顺序

LEDNR
OBJNR
GJAHR
WRTTP
VERSN
KSTAR
HRKFT VRGNG BUND RGB> BEKNZ TWAER
> PERBL
MEINH
WTG001
WTG002
WTG003
WTG004
WTG005
WTG006
WTG007
WTG008
WTG009
WTG010
WTG011
WTG012
WTG013
WTG014
WTG015
WTG016
WOG001
WOG002
WOG003
WOG004
WOG005
WOG006 WOG007
> WOG008
WOG009
WOG010
WOG011
WOG012
WOG013 WOG014
WOG015
WOG016 001KG
WKG002 003KG
WKG004
WKG005
WKG006
WKG007
WKG008
WKG009
WKG010
WKG011 KGK012
WKG013 KGK014
WKG015 KGK016
> WKF001
WKF002
WKF003
WKF006
WKF007
WKF008
WKF009
WKF010
WKF011 FKF012
WKF014
WKF015
WKF016
PAG001
PAG002
PAG003
PAG004
PAG005
PAG006
PAG007 008>
PAG009
> PAG010
PAG011
PAG012 PAG013
PAG014
PAG015 PAG016
MEG001 002> MEG003 003> MEG004 005> MEK005
MEG007
M EG008,MEG009,MEG010,MEG011,MEG012,MEG013,MEG014,MEG015,MEG016,MEF001,MEF002,MEF003,MEF004 < br> MEF005
MEF006
MEF007
MEF008
MEF009 MEF010
MEF011 012 MUV001
MUV002
MUV003
MUV004
MUV005
MUV006
MUV007
MUV008
MUV009
MUV010
MUV011
MUV012
MUV013 < br> MUV014
MUV015
MUV016
BELTP
TIMESTMP
BUKRS
FKBER
SEGMENT
GEBER
GRANT_NBR
BUDGET_PD

一周热门 更多>