cancel
Showing results for 
Search instead for 
Did you mean: 

Avoid dump -> Use IsSet() -> method is permitted

Dear experts,

I wrote an ABSL where I ran the performance check.

The check tells me to avoid dump for the following code, line 2:

1 var customer = query.Execute(params);

2 var attributesItems = customer.MarketingAttributes.Item;

...

-> Avoid dump: Use IsSet() to check the value returned by association Item

-> Avoid dump: Use IsSet() to check the value returned by association MarketingAttributes

So I tried to fix it with following code but then I get an error message for line 2:

1 var customer = query.Execute(params);

2 if(customer.MarketingAttributes.IsSet()) {

3 var attributesItems = customer.MarketingAttributes.Item;

...

-> Method or action is not permitted.

Am I using method IsSet() the wrong way?

Thank you and best regards

Fabian

Accepted Solutions (1)

Accepted Solutions (1)

0 Kudos

You can use the below code:

customer.MarketingAttributes.GetFirst().IsSet();

if (this.Identification.GetFirst().IsSet()) { EmployeeIdent = this.Identification.GetFirst().EmployeeID.content; }

0 Kudos

Hello Gaurav,

thank you for your advise.

I am just wondering when I use customer.MarketingAttributes.GetFirst().IsSet() would that not lead to a dump because I then try to retrieve the first instacne of null?

Also the performance check will still complain that I should avoid dump for association MarketingAttributes by using IsSet().

Thank you and best regards

Fabian

mandeep_shrestha1
Participant
0 Kudos

Hi gauravloknath.gera ,

Thanks for your answer. I am trying to use the same to implement in my code. But, still the performance check gives the warnings [Check] Avoid dump : Use IsSet() to check the value returned by association PartyInformationParty

Could you please help me here by looking at the below code?

foreach(var Result in Results){

var PartyContactParty = Result.PartyInformation.PartyInformationParty.MainPartyInformationPartyContactParty;

var ContactParty = PartyContactParty.Where(n =>n.PartyKey.PartyID.content.AddLeadingZeros() == This.ContactID).GetFirst();

if(ContactParty.IsSet()){

var ContactPartyParent = ContactParty.ToParent;

var RoleCode = ContactPartyParent.RoleCode;

if(RoleCode == "Z01" || RoleCode == "60"){

PartyInformation = ContactPartyParent.ParentNodeID;

continue;

}

}

Answers (2)

Answers (2)

Former Member
0 Kudos

Hello Anant,

I am currently having the same issue and cannot figure out a solution with mentioned link above.

In order to avoid dump I wrote:

if (that.Identification.IsSet())

{ EmployeeIdent = that.Identification.GetFirst().EmployeeID.content;

}

This leads to the error: Method or action 'IsSet' is not permitted. I would highly appreciate any advise on this topic.

Thank you very much in advance and kind regards

Lars

anant_acharya
Advisor
Advisor
0 Kudos

Dear Fabian,

Can you please refer to this blog :

https://blogs.sap.com/2015/08/27/sap-cloud-application-studio-performance-best-practices/

Thanks and Regards
Anant

0 Kudos

Dear Anant,

thank you for your repsonse.

I know this blog but I still don't understand why I get the error message that IsSet() is not permitted. Would you mind to give me a short description what I am doing wrong?

Thank you and best regards

Fabian