on 06-01-2016 1:37 AM
Hello Fiori Experts,
I'm currently involved in implementing few SAP Fiori Analytical Apps. After deploying them on Fiori Launchpad, Few Apps have "Cannot Load Tile" Error. On Investigation, I found it points to below authorization error which doesn't provide meaningful information.
****************************************************************************************************************************************************************************
The following problem occurred: HTTP request failed403,Forbidden,{ "error": { "code": "", "message": { "lang": "en-US", "value": "Service exception: [258] insufficient privilege"}}} -
****************************************************************************************************************************************************************************
Later, I have asked Basis to provide trace log for analysis and found errors but unable to interpret them correctly and seeking some expert advise. Just to confirm, The User have authorization to _SYS_BIC schema.
TRACE LOG :
****************************************************************************************************************************************************************************
[13346]{206667}[30/-1] 2016-05-31 04:56:28.250974 i TraceContext TraceContext.cpp(00827) : UserName=SYSTEM, ApplicationUserName=SYSTEM, ApplicationName=sap.hba.t.rtl.car.mcsa, ApplicationSource=/sap/hba/t/rtl/car/mcsa/odata/MCSAServices.xsodata;o=HANA/NumberOfTransactionsCurPerdQuery(P_CriticalThresholdPercent=5,P_CurrentPeriodEndDate=%2720170101%27,P_CurrentPeriodStartDate=%2720160101%27,P_DisplayCurrency=%27USD%27,P_ExchangeRateType=%27M%27,P_PeriodType=%27W%27,P_SAPClient=%27100%27)/Results?$select=CurrentPeriodNumberOfTransactions,PreviousPeriodPartialNumberOfTransactions,PreviousPeriodPartialCriticalNumberOfTransactions,PreviousPeriodNumberOfTransactions
[13346]{206667}[30/-1] 2016-05-31 04:56:28.250962 e CalcEngine cePopCustomSql.cpp(01143) : Error-SQL while executing "WITH _SYS_WITH_5 AS (/* procedure: _SYS_BIC.sap.hba.t.rtl.car.mcsa.v/NumberOfTransactionsHdr/proc variable: CATEGORYFILTER line: 5 */SELECT "PARTS" FROM "_SYS_BIC"."sap.hba.t.rtl.car.mcsa::explode" ('*') ) , _SYS_WITH_2 AS (/* procedure: _SYS_BIC.sap.hba.t.rtl.car.mcsa.v/NumberOfTransactionsHdr/proc variable: ORDER_CHANNEL line: 4 */SELECT "PARTS" AS "OrderChannel" FROM "_SYS_BIC"."sap.hba.t.rtl.car.mcsa::explode" ('*') ) , _SYS_WITH_3 AS (/* procedure: _SYS_BIC.sap.hba.t.rtl.car.mcsa.v/NumberOfTransactionsHdr/proc variable: CATEGORY line: 7 */SELECT "MaterialGroup" FROM "_SYS_BIC"."sap.hba.t.rtl.car.mcsa.v/MaterialGroupQuery" WHERE ( "SAPClient" = CAST('100' AS NVARCHAR(3)) AND ( CAST('*' AS VARCHAR(9)) = '*' OR "MaterialGroup" IN ( SELECT * FROM ( SELECT "PARTS" FROM _SYS_WITH_5 )_SYS_SS_VAR_CATEGORYFILTER ) ) ) ) , _SYS_WITH_4 AS (/* procedure: _SYS_BIC.sap.hba.t.rtl.car.mcsa.v/NumberOfTransactionsHdr/proc variable: STORE line: 12 */SELECT DISTINCT "PARTS" AS "Plant" FROM ( SELECT "PARTS" FROM "_SYS_BIC"."sap.hba.t.rtl.car.mcsa::explode" ('*') ) AS "A" INNER JOIN "_SYS_BIC"."sap.hba.t.rtl.car.mcsa.v/PlantQuery" AS "B" ON "A"."PARTS" = "B"."Plant" WHERE ( CAST('*' AS VARCHAR(4)) <> '*' AND "B"."SAPClient" = CAST('100' AS NVARCHAR(3)) ) UNION SELECT DISTINCT "Plant" AS "Plant" FROM ( SELECT "PARTS" FROM "_SYS_BIC"."sap.hba.t.rtl.car.mcsa::explode" ('*') ) AS "A" INNER JOIN "_SYS_BIC"."sap.hba.t.rtl.car.mcsa.v/PlantQuery" AS "B" ON "A"."PARTS" = "B"."CityName" WHERE ( CAST('*' AS VARCHAR(25)) <> '*' AND "B"."SAPClient" = CAST('100' AS NVARCHAR(3)) ) UNION SELECT DISTINCT "Plant" AS "Plant" FROM ( SELECT "PARTS" FROM "_SYS_BIC"."sap.hba.t.rtl.car.mcsa::explode" ('*') ) AS "A" INNER JOIN "_SYS_BIC"."sap.hba.t.rtl.car.mcsa.v/PlantQuery" AS "B" ON "A"."PARTS" = "B"."Region" WHERE ( CAST('*' AS VARCHAR(3)) <> '*' AND "B"."SAPClient" = CAST('100' AS NVARCHAR(3)) ) UNION SELECT DISTINCT "Plant" AS "Plant" FROM ( SELECT "PARTS" FROM "_SYS_BIC"."sap.hba.t.rtl.car.mcsa::explode" ('*') ) AS "A" INNER JOIN "_SYS_BIC"."sap.hba.t.rtl.car.mcsa.v/PlantQuery" AS "B" ON "A"."PARTS" = "B"."Country" WHERE ( CAST('*' AS VARCHAR(3)) <> '*' AND "B"."SAPClient" = CAST('100' AS NVARCHAR(3)) ) UNION SELECT "Plant" FROM "_SYS_BIC"."sap.hba.t.rtl.car.mcsa.v/PlantQuery" WHERE ( CAST('*' AS VARCHAR(4)) = '*' AND "SAPClient" = CAST('100' AS NVARCHAR(3)) ) ) , _SYS_WITH_0 AS (/* procedure: _SYS_BIC.sap.hba.t.rtl.car.mcsa.v/NumberOfTransactionsHdr/proc variable: TLOGF line: 44 */SELECT "RETAILSTOREID", "BUSINESSDAYDATE", "TRANSINDEX", "CPPOS", "PPPOS", "LYPOS", "PreviousPeriodPartialPOS" FROM ( SELECT "RETAILSTOREID", "BUSINESSDAYDATE", "TRANSINDEX", "PLANT", CASE WHEN "BUSINESSDAYDATE" BETWEEN CAST(NULL AS VARCHAR(8)) AND CAST(NULL AS VARCHAR(8)) THEN 1 ELSE 0 END AS "CPPOS", CASE WHEN "BUSINESSDAYDATE" BETWEEN CAST(NULL AS VARCHAR(8)) AND CAST(NULL AS VARCHAR(8)) THEN 1 ELSE 0 END AS "PPPOS", CASE WHEN "BUSINESSDAYDATE" BETWEEN CAST('' AS VARCHAR(8)) AND CAST('' AS VARCHAR(8)) THEN 1 ELSE 0 END AS "LYPOS", CASE WHEN "BUSINESSDAYDATE" BETWEEN CAST(NULL AS VARCHAR(8)) AND CAST(NULL AS VARCHAR(8)) THEN 1 ELSE 0 END AS "PreviousPeriodPartialPOS" FROM "/POSDW/TLOGF" AS "A" INNER JOIN ( SELECT "MaterialGroup" FROM _SYS_WITH_3 ) "C" ON "A"."MERCHANDISECAT" = "C"."MaterialGroup" WHERE ( "MANDT" = CAST('100' AS NVARCHAR(3)) AND ( "BUSINESSDAYDATE" BETWEEN CAST(NULL AS VARCHAR(8)) AND CAST(NULL AS VARCHAR(8)) OR "BUSINESSDAYDATE" BETWEEN CAST(NULL AS VARCHAR(8)) AND CAST(NULL AS VARCHAR(8)) OR "BUSINESSDAYDATE" BETWEEN CAST('' AS VARCHAR(8)) AND CAST('' AS VARCHAR(8)) ) AND "RECORDQUALIFIER" = '5' AND "BUSINESSTYPE" = '1' AND "RETL_ITEM_CAT" IN ( 'A', 'B', 'C', 'D' ) AND "TRANSDEBITFLAG" <> 'X' AND "DISTVOID" <> 'X' AND "TRAININGFLAG" <> 'X' AND "TASK_CANCELED" <> 'X' AND ( CAST('*' AS VARCHAR(2)) = '*' OR "ORDER_CHANNEL" IN ( SELECT * FROM ( SELECT "OrderChannel" FROM _SYS_WITH_2 )_SYS_SS_VAR_ORDER_CHANNEL ) ) AND "DATASTATUS" <> '1' ) GROUP BY "RETAILSTOREID", "BUSINESSDAYDATE", "TRANSINDEX", "PLANT" ) AS "A" INNER JOIN ( SELECT "Plant" FROM _SYS_WITH_4 ) "B" ON "A"."PLANT" = "B"."Plant" ) , _SYS_WITH_1 AS (/* procedure: _SYS_BIC.sap.hba.t.rtl.car.mcsa.v/NumberOfTransactionsHdr/proc variable: BILLINGDOCUMENT line: 70 */SELECT "SalesDocument", "BillingDocumentDate", CASE WHEN "BillingDocumentDate" BETWEEN CAST(NULL AS VARCHAR(8)) AND CAST(NULL AS VARCHAR(8)) THEN 1 ELSE 0 END AS "CPBillingDoc", CASE WHEN "BillingDocumentDate" BETWEEN CAST(NULL AS VARCHAR(8)) AND CAST(NULL AS VARCHAR(8)) THEN 1 ELSE 0 END AS "PPBillingDoc", CASE WHEN "BillingDocumentDate" BETWEEN CAST('' AS VARCHAR(8)) AND CAST('' AS VARCHAR(8)) THEN 1 ELSE 0 END AS "LYBillingDoc", CASE WHEN "BillingDocumentDate" BETWEEN CAST(NULL AS VARCHAR(8)) AND CAST(NULL AS VARCHAR(8)) THEN 1 ELSE 0 END AS "PreviousPeriodPartialBillingDoc" FROM "_SYS_BIC"."sap.hba.t.rtl.car.mcsa.v/BillingDocumentItem" AS "A" INNER JOIN ( SELECT "Plant" FROM _SYS_WITH_4 ) "B" ON "A"."Location" = "B"."Plant" INNER JOIN ( SELECT "MaterialGroup" FROM _SYS_WITH_3 ) "C" ON "A"."MaterialGroup" = "C"."MaterialGroup" WHERE ( "SAPClient" = CAST('100' AS NVARCHAR(3)) AND ( "BillingDocumentDate" BETWEEN CAST(NULL AS VARCHAR(8)) AND CAST(NULL AS VARCHAR(8)) OR "BillingDocumentDate" BETWEEN CAST(NULL AS VARCHAR(8)) AND CAST(NULL AS VARCHAR(8)) OR "BillingDocumentDate" BETWEEN CAST('' AS VARCHAR(8)) AND CAST('' AS VARCHAR(8)) ) AND ( CAST('*' AS VARCHAR(2)) = '*' OR "OrderChannel" IN ( SELECT * FROM ( SELECT "OrderChannel" FROM _SYS_WITH_2 )_SYS_SS_VAR_ORDER_CHANNEL ) ) ) GROUP BY "SalesDocument", "BillingDocumentDate") /* procedure: _SYS_BIC.sap.hba.t.rtl.car.mcsa.v/NumberOfTransactionsHdr/proc variable: VAR_OUT line: 90 */SELECT SUM(( "CPPOSNumberOfTransactions" + "CPBillingDocument" )) AS "CurrentPeriodNumberOfTransactions", SUM(( "PPPOSNumberOfTransactions" + "PPBillingDocument" )) AS "PreviousPeriodNumberOfTransactions", SUM(( "LYPOSNumberOfTransactions" + "LYBillingDocument" )) AS "CurrentPeriodLastYearNumberOfTransactions", SUM(( "PreviousPeriodPartialPOS" + "PreviousPeriodBillingDocument" )) AS "PreviousPeriodPartialNumberOfTransactions", ( SUM(( "PreviousPeriodPartialPOS" + "PreviousPeriodBillingDocument" )) * ( ( 100 - CAST(5 AS INTEGER) ) * 0.01 ) ) AS "PreviousPeriodPartialCriticalNumberOfTransactions" FROM ( SELECT SUM("CPPOS") AS "CPPOSNumberOfTransactions", SUM("PPPOS") AS "PPPOSNumberOfTransactions", SUM("LYPOS") AS "LYPOSNumberOfTransactions", SUM("PreviousPeriodPartialPOS") AS "PreviousPeriodPartialPOS", 0 AS "CPBillingDocument", 0 AS "PPBillingDocument", 0 AS "LYBillingDocument", 0 AS "PreviousPeriodBillingDocument" FROM ( SELECT "RETAILSTOREID", "BUSINESSDAYDATE", "TRANSINDEX", "CPPOS", "PPPOS", "LYPOS", "PreviousPeriodPartialPOS" FROM _SYS_WITH_0 )_SYS_SS_VAR_TLOGF UNION ALL SELECT 0 AS "CPPOSNumberOfTransactions", 0 AS "PPPOSNumberOfTransactions", 0 AS "LYPOSNumberOfTransactions", 0 AS "PreviousPeriodPartialPOS", SUM("CPBillingDoc") AS "CPBillingDocument", SUM("PPBillingDoc") AS "PPBillingDocument", SUM("LYBillingDoc") AS "LYBillingDocument", SUM("PreviousPeriodPartialBillingDoc") AS "PreviousPeriodBillingDocument" FROM ( SELECT "SalesDocument", "BillingDocumentDate", "CPBillingDoc", "PPBillingDoc", "LYBillingDoc", "PreviousPeriodPartialBillingDoc" FROM _SYS_WITH_1 )_SYS_SS_VAR_BILLINGDOCUMENT ) /* 100000000000000000000000000000000000000000000000000000000000000111110000011111111111111111111111101111111111111110101111110111111101111111111111111111111111011111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 */ ": insufficient privilege: Not authorized
[27345]{206667}[30/-1] 2016-05-31 04:56:28.251267 e Executor PlanExecutor.cpp(00825) : plan plan14716330@xxxxxxxxx:30503 failed with rc 258; insufficient privilegeinsufficient privilege: Not authorizedPlease check lines: 90,44,70,4,7,12,5,
[27345]{206667}[30/-1] 2016-05-31 04:56:28.251292 e Executor PlanExecutor.cpp(00825) : -- returns for plan14716330@xxxxxxxxx:30503:
[27345]{206667}[30/-1] 2016-05-31 04:56:28.251300 e Executor PlanExecutor.cpp(00825) : insufficient privilege: Not authorizedPlease check lines: 90,44,70,4,7,12,5,(258), plan: 3 pops: ceSqlPop pop1(out a), ceConvertDatatypePop pop2(in a, out b), ceSqlPop pop3(in b, out c)
[27345]{206667}[30/-1] 2016-05-31 04:56:28.251315 e Executor PlanExecutor.cpp(00825) : pop1, 04:56:28.206 +0.045, cpu 140459806766552, ceSqlPop, rc 258, insufficient privilege
******************************************************************************************************************************************************************************
Hi Kamal,
It seems that you haven't provided the end user with the required HANA Role.
Please check the Fiori Apps Library for providing the required role on the HANA side. For example Overdue Receivables app requires the following HANA role:
I am assuming that you have already given the required roles on the Gateway and ERP side.
Hope this helps.
Regards,
Karan
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Karan,
Thanks for the response....
I can confirm that I have assigned all required HANA role(s) to the user as mentioned in the implementation steps from Fiori apps Libraray.
I have even assigned SELECT grant on Schema _SYS_BIC for user _SYS_REPO.
But still getting the same error.
On reading the trace log more closely, the authorization error occurs on one of the below call
----------------------------------------------------------------------------------------------------------------------------------------------------
procedure: _SYS_BIC.sap.hba.t.rtl.car.mcsa.v/NumberOfTransactionsHdr/proc variable: VAR_OUT line: 90
----------------------------------------------------------------------------------------------------------------------------------------------------
which is reflects below in error log as
----------------------------------------------------------------------------------------------------------------------------------------------------
failed with rc 258; insufficient privilegeinsufficient privilege: Not authorizedPlease check lines: 90,44,70,4,7,12,5,
----------------------------------------------------------------------------------------------------------------------------------------------------
If that provides more information.
Regards,
Kamal Sehrawat
User | Count |
---|---|
83 | |
10 | |
10 | |
9 | |
7 | |
6 | |
5 | |
5 | |
4 | |
3 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.