cancel
Showing results for 
Search instead for 
Did you mean: 

SAP Fiori Analytical Apps - Authorization Issue

Former Member
0 Kudos

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

******************************************************************************************************************************************************************************

Accepted Solutions (0)

Answers (1)

Answers (1)

karanbahl
Active Participant
0 Kudos

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

Former Member
0 Kudos

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

karanbahl
Active Participant
0 Kudos

Hi Kamal,

Please refer to the below thread and check if anything is missing at your end:

Regards,

Karan

Former Member
0 Kudos

Hi Karan,

I did followed this thread to check whether the mentioned SMART BUSINESS roles are assigned and can confirm they're.

It looks like it's something else.

Regards,

Kamal Sehrawat

karanbahl
Active Participant
0 Kudos

Hi Kamal,

I think then it's better to consult with the person in your team who has knowledge in HANA Administration and Development.

Regards,

Karan