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
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
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?
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:
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
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
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.
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 ?
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.
Hi Experts,
1.what is the difference between SAP memory and ABAP Memory.
thanks in advance.
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;
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 |
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
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:
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?
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.
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.
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?
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.
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?
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:
Below is the External View:
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