Quantcast
Channel: SCN : Discussion List - ABAP for SAP HANA
Viewing all 429 articles
Browse latest View live

Unleash the POWER"list" on HANA

$
0
0

Hi there,

 

I have written this document about using the powerlist framework on HANA, i have posted it into the NWBC community and wanted to share it with who ever might be interested in this forum

 

Please follow the link below

 

Unleash the POWER"list" on HANA


How to download transport request to server on a HANA system?

$
0
0

On a non-HANA system I am used to downloading transport requests to the server by following these instructions:

 

 

scn.sap.com/docs/DOC-45570

 

 

On the HANA system the directories 'cofiles' and 'data' are empty and I have not been able to locate the transport files (K-files) in any other directory.

 

 

Also the transactions CG3Y and CG3Z dont exist etc.

 

 

Anybody know how to go about this on a HANA system?

Alternate to Loops and Read Statements in HANA procedures

$
0
0

Hi Experts,

 

We have a client upgrading to HANA so there are many reports that we would like to code pushdown.

 

There are certain challenges that we are facing while creating procedures like:

The existing report has many loops and read statements inside so we are planning to bring that logic down inside Procedures.

 

As of now all the Select Queries have been incorporated via CE Functions inside the Procedures but the main challenge now is how to code for loop and read statements inside procedures.

 

I would like to put a loop on the output parameters below:

 

ZPC_MSC.PNG

 

Also,Is it a good practice to remove all the loops and read statements and writing them in Procuderes or just leave them as it is and just put the Select Queries inside Procedures.

 

Below is the code that we want to have inside our procedures:

     LOOP AT i_vbfa INTO w_vbfa WHERE vbelv = w_vbak-vbeln.

       READ TABLE i_vbrk INTO w_vbrk WITH KEY vbeln = w_vbfa-vbeln

                                              fkart = 'ZRBC'.

       IF sy-subrc = 0.

         v_fkdat w_vbrk-fkdat.

         IF w_vbrk-zzbelnr IS INITIAL.

           lv_rbc = 'X'.

         ENDIF.

       ENDIF.


       READ TABLE i_vbrk INTO w_vbrk WITH KEY vbeln = w_vbfa-vbeln

                                                fkart = 'ZRBM'.

       IF sy-subrc = 0.

         lv_rbm = 'X'.

       ENDIF.

 

 

       CLEAR: w_vbfa,

              w_vbrk.

 

     ENDLOOP.

 

I guess we would have to use For and Cursor Statements but never used them.

 

Thanks,
Gaurav

Getting Error while creating Calculation view.

$
0
0

Hi Expert,

 

I was trying to create one simple calculation view using SQL script but getting below error.

 

/********* Begin Procedure Script ************/

BEGIN

 

create type var_out1 as table (ebeln varchar(10),menge decimal);

 

        var_out  = CE_COLUMN_TABLE ("SAPEH2"."EKKO",[EBELN,AEDAT] );

        var_out1 = CE_COLUMN_TABLE ("SAPEH2"."EKPO",[EBELN,MENGE] );

        var_out2 - CE_UNION_ALL (:var_out1,:var_out2);

 

END

 

/********* End Procedure Script ************/

 

I thought , i might need to declare a table type for output table var_out1 and var_out2. I tried by declaring table like below couldn't get any success.

 

create type var_out1 as table (ebeln varchar(10),menge decimal);

create type var_out2 as table (ebeln varchar(10), aedat DATE ,menge decimal);

 

error:

 

Message :

     Internal deployment of object failed;Repository: Encountered an error in repository runtime extension;Internal Error:Deploy Calculation View: SQL: sql syntax error: CREATE TYPE is not allowed in SQLScript: line 5 col 2 (at pos 277)nSet Schema DDL statement: set schema "SAPEH2"nType DDL: create type "_SYS_BIC"."pkg-sapuser03.test_giri/CA_SALES1/proc/tabletype/VAR_OUT" as table ("EBELN" VARCHAR(10), "AEDAT" DATE, "MENGE" DECIMAL(13,3))nProcedure DDL: create procedure "_SYS_BIC"."pkg-sapuser03.test_giri/CA_SALES1/proc" ( OUT var_out "_SYS_BIC"."pkg-sapuser03.test_giri/CA_SALES1/proc/tabletype/VAR_OUT" ) language sqlscript sql security definer reads sql data as  n /********* Begin Procedure Script ***********/ n BEGIN n n create type var_out1 as table (ebeln varchar(10),menge decimal);n create type var_out2 as table (ebeln varchar(10), aedat DATE ,menge decimal);n n t   var_out  = CE_COLUMN_TABLE ("SAPEH2"."EKKO",[EBELN,AEDAT] );n t   var_out1 = CE_COLUMN_TABLE ("SAPEH2"."EKPO",[EBELN,MENGE] );n t   var_out2 - CE_UNION_ALL (:var_out1,:var_out2);nnEND /******** End Procedure Script ************/n

 

Could you please help me to understand the cause of this?

 

Thanks,

 

Girdhari

 

Adding ABAP plugins in HANA Studio

$
0
0

Hi Experts,

 

I already have a HANA studio installed in my system (Version 58), now I want to add the ABAP development and UI5 plugins. I tried to do that by going to Help->Add new software and giving the URL as https://tools.hana.ondemand.com/juno. Though I can see the plug-ins but when I add them and go to the next screen, I see an error message.

 

The error message is:

“Software being installed: ABAP Connectivity And Integration Development Tools (Developer Edition) 1.0.4 (com.sap.adt.pitools.tlf.devedition.feature.group 1.0.4).

  Missing requirement: ABAP Connectivity And Integration Development Tools (Developer Edition) 1.0.4 (com.sap.adt.pitools.tlf.devedition.feature.group 1.0.4) requires 'org.eclipse.emf.query.feature.group [1.5.0,2.0.0)' but it could not be found”.

 

 

As I already have HANA studio which is also eclipse based, so I think we do not need to install one more eclipse for ABAP. Please help me in getting started to work on ABAP in HANA, the Eclipse way.

Calling HANA procedures and Views in oracle DB as secondary DB

$
0
0

Hi Experts

 

I have a doubt

we know using secondary database connection we can access HANA DB

My primary database is Oracle and Secondary DB is HANA

While creating secondary database connection we need to define default schema.

As we know we can access only the tables present in default schema

 

Can we access view and procedures created in the default schema or _SYS_BIC schemas  in ECC report running on oracle db using ADBC ?

Update Very Slow on HANA Database

$
0
0

Hi Folks,

 

Recently we migrated to HANA in our BW system. I am having a program which does an update on a table.

 

When I write MODIFY statement program dumps with exception DBSQL_INTERNAL_ERROR ( Internal Kernel Error ).

 

MODIFY zdata FROM TABLE @lt_data.

 

Then I changed the Modify statement to Update and it stopped dumping.

 

UPDATE zdata FROM TABLE @lt_data.

 

But came upon a new issue, just to update 11000 records its taking ages. Don't know what's wrong here. Before migrating to HANA same Update used to be lightening fast.

 

If I am doing anything wrong your inputs will be appreciated.

difference between SAP memory and ABAP Memory

$
0
0

Hi Experts,

 

1.what is the difference between SAP memory and ABAP Memory.

 

thanks in advance.


IDES server Password reset link --- Not Opening

$
0
0
Dear Concern ,
                                 IDES server daily password reset link is not opening from yesterday. Kindly let know when this might be corrected.
Best Regards
Keerthan Kumar

Getting and transforming data in code to data paradigm

$
0
0

Hi all,

 

I'm currently trying to develop a powerlist by joining three tables together, QCPR, EKBE and EKPO. However i need to transform a colum based on another column.

So when EKBE.SHKGZ = H then the value EKBE.MENGE needs to be negative.

 

I have got this to work using an analytic view and a formula. However i would like to do it in the code to data paradigm either by using a CDS view or an AMDP procedure.

 

I have tried both, but haven't gotten it to work yet. In the CDS view i can transform my data fine, however i am currently using the union all statement and therefore not getting the aggregated resultset which i want.

 

Then i tried to use a AMDP procedure, but here i can't activate it because my return type doesn't match, and i haven't been able to get any further.

 

I am hoping someone can help me out on how to do this. Thanks in advance.

 

Here is my method in the AMDP example

 

METHOD get_data BY DATABASE PROCEDURE FOR HDB

                           LANGUAGE SQLSCRIPT using QCPR EKBE EKPO.

 

 

  output = select qc.CERTNO, qc.ZGTYP, qc.EBELN, qc.EBELP, qc.MATNR, qc.WERKS, qc.CHARG, qc.LICHN, qc.LFSNR,

  qc.LIFNR, qc.HERSTELLER, qc.MJAHR, qc.MBLNR, qc.ZEILE, qc.BUDAT, qc.STATUS, qc.REMDAT, qc.ESCDAT, 

  qc.CERTDAT, qc.CERTREC, qc.ERSTELLER, qc.ERSTELDAT, qc.ERSTELZEIT, qc.AENDERER, qc.AENDERDAT, qc.AENDERZEIT, be.menge * -1 as menge, po.meins from QCPR as qc

  inner join ekbe as be on qc.ebeln = be.ebeln

  and qc.ebelp = be.ebelp

  and qc.mjahr = be.lfgja

  and qc.mblnr = be.lfbnr

  and qc.zeile = be.lfpos

  inner join ekpo as po on qc.ebeln = po.ebeln and qc.ebelp = po.ebelp

  where be.shkzg = 'H';              

 

  output1 = select qc.CERTNO, qc.ZGTYP, qc.EBELN, qc.EBELP, qc.MATNR, qc.WERKS, qc.CHARG, qc.LICHN, qc.LFSNR,

  qc.LIFNR, qc.HERSTELLER, qc.MJAHR, qc.MBLNR, qc.ZEILE, qc.BUDAT, qc.STATUS, qc.REMDAT, qc.ESCDAT, 

  qc.CERTDAT, qc.CERTREC, qc.ERSTELLER, qc.ERSTELDAT, qc.ERSTELZEIT, qc.AENDERER, qc.AENDERDAT, qc.AENDERZEIT, be.menge, po.meins from QCPR as qc

  inner join ekbe as be on qc.ebeln = be.ebeln

  and qc.ebelp = be.ebelp

  and qc.mjahr = be.lfgja

  and qc.mblnr = be.lfbnr

  and qc.zeile = be.lfpos

  inner join ekpo as po on qc.ebeln = po.ebeln and qc.ebelp = po.ebelp

    where be.shkzg != 'H';

 

 

  put3 = ce_join(:output, :output1, [CERTNO], [CERTNO, ZGTYP, EBELN, EBELP, MATNR, WERKS, CHARG, LICHN, LFSNR,

  LIFNR, HERSTELLER, MJAHR, MBLNR, ZEILE, BUDAT, STATUS, REMDAT, ESCDAT, 

  CERTDAT, CERTREC, ERSTELLER, ERSTELDAT, ERSTELZEIT, AENDERER, AENDERDAT, AENDERZEIT, menge]);

  et_output = select * from :output3;

 

And this is my CDS view

@AbapCatalog.sqlViewName: 'ZFSC_CERT'

define view ZFSC_CERTIFICATION_view as

select from QCPR as qc

  inner join ekbe as be on qc.ebeln = be.ebeln

  and qc.ebelp = be.ebelp

  and qc.mjahr = be.lfgja

  and qc.mblnr = be.lfbnr

  and qc.zeile = be.lfpos

  inner join ekpo as po on qc.ebeln = po.ebeln and qc.ebelp = po.ebelp

{

    key qc.CERTNO as CERTNO,

key qc.ZGTYP as ZGTYP,

key qc.EBELN as EBELN,

key qc.EBELP as EBELP,

qc.MATNR as MATNR,

qc.WERKS as WERKS,

qc.CHARG as CHARG,

qc.LICHN as LICHN,

qc.LFSNR as LFSNR,

qc.LIFNR as LIFNR,

qc.HERSTELLER as HERSTELLER,

qc.MJAHR as MJAHR,

qc.MBLNR as MBLNR,

qc.ZEILE as ZEILE,

qc.BUDAT as BUDAT,

qc.STATUS as STATUS,

qc.REMDAT as REMDAT,

qc.ESCDAT as ESCDAT,

qc.CERTDAT as CERTDAT,

qc.CERTREC as CERTREC,

qc.ERSTELLER as ERSTELLER,

qc.ERSTELDAT as ERSTELDAT,

qc.ERSTELZEIT as ERSTELZEIT,

qc.AENDERER as AENDERER,

qc.AENDERDAT as AENDERDAT,

qc.AENDERZEIT as AENDERZEIT,

be.menge * -1 as menge

}

  where shkzg = 'H'

  group by qc.CERTNO, qc.ZGTYP, qc.EBELN, qc.EBELP, qc.MATNR, qc.WERKS, qc.CHARG, qc.LICHN, qc.LFSNR,

  qc.LIFNR, qc.HERSTELLER, qc.MJAHR, qc.MBLNR, qc.ZEILE, qc.BUDAT, qc.STATUS, qc.REMDAT, qc.ESCDAT, 

  qc.CERTDAT, qc.CERTREC, qc.ERSTELLER, qc.ERSTELDAT, qc.ERSTELZEIT, qc.AENDERER, qc.AENDERDAT, qc.AENDERZEIT, po.meins, be.menge

 

union all

 

select from QCPR as qc

  inner join ekbe as be on qc.ebeln = be.ebeln

  and qc.ebelp = be.ebelp

  and qc.mjahr = be.lfgja

  and qc.mblnr = be.lfbnr

  and qc.zeile = be.lfpos

  inner join ekpo as po on qc.ebeln = po.ebeln and qc.ebelp = po.ebelp

{

    key qc.CERTNO as CERTNO,

key qc.ZGTYP as ZGTYP,

key qc.EBELN as EBELN,

key qc.EBELP as EBELP,

qc.MATNR as MATNR,

qc.WERKS as WERKS,

qc.CHARG as CHARG,

qc.LICHN as LICHN,

qc.LFSNR as LFSNR,

qc.LIFNR as LIFNR,

qc.HERSTELLER as HERSTELLER,

qc.MJAHR as MJAHR,

qc.MBLNR as MBLNR,

qc.ZEILE as ZEILE,

qc.BUDAT as BUDAT,

qc.STATUS as STATUS,

qc.REMDAT as REMDAT,

qc.ESCDAT as ESCDAT,

qc.CERTDAT as CERTDAT,

qc.CERTREC as CERTREC,

qc.ERSTELLER as ERSTELLER,

qc.ERSTELDAT as ERSTELDAT,

qc.ERSTELZEIT as ERSTELZEIT,

qc.AENDERER as AENDERER,

qc.AENDERDAT as AENDERDAT,

qc.AENDERZEIT as AENDERZEIT,

sum(be.menge) as menge

}

  where shkzg != 'H'

  group by qc.CERTNO, qc.ZGTYP, qc.EBELN, qc.EBELP, qc.MATNR, qc.WERKS, qc.CHARG, qc.LICHN, qc.LFSNR,

  qc.LIFNR, qc.HERSTELLER, qc.MJAHR, qc.MBLNR, qc.ZEILE, qc.BUDAT, qc.STATUS, qc.REMDAT, qc.ESCDAT, 

  qc.CERTDAT, qc.CERTREC, qc.ERSTELLER, qc.ERSTELDAT, qc.ERSTELZEIT, qc.AENDERER, qc.AENDERDAT, qc.AENDERZEIT, po.meins;

How to prepare TSD ?

$
0
0

Hi all,

 

How to prepare a technical specification document for example say, open purchase order  in MM module? What does a  TSD basically contain? I will give you the scenario, please let me know what all should be mentioned in a TSD doc. Do I need to include what all functions I will be working on? I am new to ABAP , please guide me. Thanks in advance.

 

 

Business Scenario: 

Report should display a list of open purchase orders when the PO quantity is greater than the total goods receipt quantity.

 

The following is the input:

 

Table/Field Name

Field

Optional /Required

Remarks

EKKO-EBELN

PO #

O

 

EKKO-EBDAT

Document date

R

 

EKKO-BSART

Purchasing doc type

O

 

EKKO-BSTYP

Purchasing doc category

O

 

EKKO-EKGRP

Purchasing group

O

 

EKKO- WERKS

Plant

O

 

EKPO- EBELP

Item# in PO

O

 

EKPO- MATKL

Material group

O

 

EKKO-BUKRS

Company Code

O

 

EKKO-EKORG

Purchase Organization

O

 

EKPO-MATNR

Material #

O

 

 

Processing Logic:

 

Pull the list of PO’s with the above selection criteria based on below logic.

 

Check the entry exist in EKBE table and when EKBE-VGABE = 1.

 

If entry does not exist in EKBE, for those PO’s Goods Receipt is not done. So list all those PO’s in the output with the details given in the output format. For these PO’s Total GR Quantity in the output will be 0 and open PO quantity will be same as PO quantity.

 

For those PO’s where entries are available in EKBE, then pull the below material document data for PO line items.

 

EKBE-EBELN----- PO Number

EKBE-EBELP------ PO Line Item Number

EKBE-BELNR------Material Document Number

EKBE-MENGE-----Quantity

 

Sum up the GR quantities (EKBE-MENGE) for the material documents at PO line item level to derive “ Total GR quantity” and list the PO’s in the output where the “PO quantity” is greater than the “Total GR quantity”. Open PO quantity for this case will be “PO Quantity - Total GR quantity”.

 

Output Format:

 

 

PO No

Line Item Number

PO Date

PO Quantity

Total GR Quantity

Open PO Quantity

EKKO-EBELN

EKPO- EBELP

EKKO-EBDAT

EKPO-MENGE

As per the logic given above

As per the logic given above

Install SAP ECC 6 on SAP HANA

$
0
0

Hi,

 

Can anybody kindly advise the path to download SAP ECC 6.16 Export(1/11)? I can only found ECC 6.06 and ECC 6.17 on Service Market Place.

 

Thank you!

 

-Jack

Direct Update DSO keyfields in RSA1 SE11 & SELECT returns garbage

$
0
0

DSO XXXD0 of type 'Direct Update' has been defined with 6 IOBJs as key fields in RSA1.

 

In SE11 the active table /BIC/AXXXD000 only shows 1 of the above IOBJs as a key field.

 

There are several records in table /BIC/AXXXD000 all with the same value for the field marked as 'key' in SE11.

 

Normal SELECT statements in ABAP workbench returns garbage.

 

Is this normal???

 

If it is normal can anybody explain how it can be? ... and most importantly why it is like this.

 

Info: system BW7.4 on HANA

 

Screenshots:

 

DSO definition in BW

 

SE11 technical settings of active table:

 

Structure of the active DSO table in SE11:

 

Content of the same table in SE11:

 

SELECT statement:

 

Debugger shows garbage:

Not able to use CONCAT in CDS View

$
0
0

Hello,

 

My requirement is to prepare a field by concatenating 'PR' in front of the field and use it in a CDS view.

I am getting the below error while doing it.

 

Is the issue with my HANA version or the code is wrong.

 

Capture.JPG

Concat function or equivalent for CDS view?

$
0
0

Trying to create a CDS view and looking to combine multiple character fields (e.g. first_name + last_name) and am wondering if this is possible? Am on CRM NW 7.4 SP5 on HANA.

 

Using the arithmetic function gives me the following.

 

Data type CHAR is currently not supported in an arithmetic expression

 

Looking at the official documentation here, it doesn't appear to be included?

 

ABAP Keyword Documentation

 

I can always create a AMDP or even a HANA native view, just wondering if anyone has come across the same issue and found a solution within CDS view?

 

Thanks in advance,
Sean.


What is the HANA default user when executing AMDP's?

$
0
0

With which HANA-user does the ABAP user operate in HANA in the case of an AMDP?

 

I am getting the message "SQLScript message: insufficient privilege: Not authorized" in the syntax check in SE24 for a call to an external procedure which is not located in the default schema.

AMDP syntax call to external procedure: "SQLScript message: insufficient privilege: Not authorized"

$
0
0

I am getting the message "SQLScript message: insufficient privilege: Not authorized" in the syntax check in SE24 for an AMDP call to an external procedure which is not located in the default schema (located in schema MYSCHEMA).

 

With DB_DBUSER & DB_DBSCHEMA I have confirmed the default user and schema to both be SAPHANAABAP.

 

In HANA Studio the owner of schema MYSCHEMA has granted the following privileges:

 

grant debug  on schema MYSCHEMA to SAPHANAABAP;

grant select on schema MYSCHEMA to SAPHANAABAP;

grant update on schema MYSCHEMA to SAPHANAABAP;

grant delete on schema MYSCHEMA to SAPHANAABAP;

grant insert on schema MYSCHEMA to SAPHANAABAP;

grant attach debugger to SAPHANAABAP;

 

What is the missing piece in this puzzle?

Debugging stored procedure: 'Edit Source Lookup Path' (and source not found)

$
0
0

I have this AMDP generated procedure that I am trying to debug, but for some reason the debugger is not stopping as it is supposed to do despite having followed the instructions provided in Tutorial: How to Debug an ABAP Managed Database Procedure

 

Hence, instead I created a catalog procedure (ZTEST2) which I am now attempting to debug as described by Rich Heilmann in this video  SPS7 Catalog Debugging - YouTube

 

Unfortunately also this does not work as expected and the debugger is stoppiingI at the breakpoints, but all I see is the mesage 'Edit Source Lookup Path...' (pls see screenshot below).

 

Important to note: procedure ZTEST2 calls the AMDP generated procedure which I am unable to debug in the normal fashion (it is used as a wrapper procedure since there are populated tables as parameters to the AMDP procedure).

 

Maybe since ZTEST2 calls an AMDP procedure (which is linked to an ABAP class) the debugger is looking for the path to that class somehow.

 

I have tried all the entires offered in the window below to the right (multiple select is possible), but to no avail.

 

AMDP call to Procedure: "SQLScript message: insufficient privilege: Not authorized"

$
0
0

Hi!

the syntax check in SE24 reports an error in line 1 in method MY_HANA_PROCEDURE (pls see first screenshot below). If I remove the call to procedure ZTEST in line 247 the syntax check is successfull. Development in SE24 is performed by user ABAPDEVELOPER whilst the procedure ZTEST has been created by user HANADEVELOPER which has been assigned the schema (the procedure is not in schema HANADEVELOPER) to which the procedure belongs the procedure being called (ZTEST) to the 'Object Privileges' (pls see second screenshot below).

 

Any ideas out there?

 

 

External View: No data preview

$
0
0

Hi Experts.

 

I just created an External View following the steps on link: How to Consume HANA View in ABAP Using External View and Open SQL

 

The problem is that when I choose "Open Data Preview" on the External View context menu, no rows are retrieved.

 

The SAP HANA View I am exposing via External View is a SAP standard calculation view called "sap.glo.tmflocbr.ctr.NF_IMPOSTO_CALCULO".

 

When I choose "Data Preview", the calculation view returns 5 rows:

 

2014.11.01_0007.jpg

 

Below is the External View:

 

2014.11.01_0008.jpg

I can see the the External View on SE11. The problem is that no rows are retrieved using ADT on Eclipse neither using ABAP program.

 

Is there anything done wrong? Is there any security issues I am not taking into account?

 

Thanks in advance!

Leandro

Viewing all 429 articles
Browse latest View live