Count (“MVL Link”) – reducing scripting

This Article has been submitted by Deepak  S Kumar. This article describes how to use Count Function in calculated field involving MVL link to count number of child records for a BC and then base our conditions on that to fullfill our requirement.

Very often we have scenarios where conditions has to be set based on the count or number of records in child BC. This can be achieved using the function Count(“MVL Link”) in a Calculated expression and setting conditions with help of user properties. Let’s understand it with help or a Requirement.

Requirement:

A field “Currency “ in “Opportunity” BC should be read only based on the number of records in child BC “Service Agreement “. If the agreement child record count > 0 then Currency should be read only and it should be editable if the child record count = 0

Solution:

Count (“MVL Link”) used as an expression in a calculated field returns the number of records in child BC.

Following configuration in Tools is required to achieve the above functionality:

» For the “Opportunity” Business component, create the Multi Value Link record “Service Agreement” and set the following property for the record: Destination Link = ” Opportunity/Service Agreement ”

» Add following fields to “Opportunity “ Business Component.

Name: Service Agreement Count
Calculated: True
Calculated Value: Count (“Service Agreement”)

Name: Currency Read Only Flag
Calculated: True
Calculated Value: IIF ([Service Agreement Count] = 0, “N”, “Y”)

» Add following BC User Property to Opportunity Business component to make Currency Field Read only

Name: Field Read Only Field: Currency
Value: Currency Read Only Flag

This will make “Currency” Field editable only when Agreement record count = 0  and read only if agreement count > 0.

35 Responses to Count (“MVL Link”) – reducing scripting

  1. I thought the article was dealing with M;M relation because 1:M relations do not have an MVL.. please excuse me if I misunderstood

  2. I thought the article was dealing with M;M relation because 1:M relations do not have an MVL.. please excuse me if I misunderstood

  3. If you read the requirement it says.

    Opportunity field should be read only if the number of child records in Service Agreement BC is greater than zero.

    An MVL uses Link and based on that we have MVF fields in parent BC pulling Child record information so the above solution is valid for 1:M relations also.

    Just create an MVL in parent BC and use Count function to get the number of child records

  4. If you read the requirement it says.

    Opportunity field should be read only if the number of child records in Service Agreement BC is greater than zero.

    An MVL uses Link and based on that we have MVF fields in parent BC pulling Child record information so the above solution is valid for 1:M relations also.

    Just create an MVL in parent BC and use Count function to get the number of child records

  5. Hi Neel,

    Just to add to your post..
    i have experience performance hit while using count MVL..So if we plan to use such calc fields ..the count shoud use an MVL based on thin child BC..
    It helped us a lot..!

    NS

  6. Hi Neel,

    Just to add to your post..
    i have experience performance hit while using count MVL..So if we plan to use such calc fields ..the count shoud use an MVL based on thin child BC..
    It helped us a lot..!

    NS

  7. hi,
    im new to siebel crm.im pleased if anyone say me how to configure links both 1:m and m:m.Anyone explain me the difference b/w them.
    thanks in advance

  8. hi,
    im new to siebel crm.im pleased if anyone say me how to configure links both 1:m and m:m.Anyone explain me the difference b/w them.
    thanks in advance

  9. hi Neel,

    please advice me on this

    In our requirement in Contact(parent) has a MVF Account.if there is only one account associated with contact then the delete button should be disable in contact applet.If there is more than one account associated with contact then delete button should enable.

    i had done all configuration mentioned bu you ..and i add Applet user property

    Name=CanInvokeMethod: DeleteRecord
    Value:[Calculated field]

    Calc field:Count(“MVL”)
    Calculated field:IIF ([calc field] = 1, “N”, “Y”)

    but its not working.
    waiting for u r reply…

  10. hi Neel,

    please advice me on this

    In our requirement in Contact(parent) has a MVF Account.if there is only one account associated with contact then the delete button should be disable in contact applet.If there is more than one account associated with contact then delete button should enable.

    i had done all configuration mentioned bu you ..and i add Applet user property

    Name=CanInvokeMethod: DeleteRecord
    Value:[Calculated field]

    Calc field:Count(“MVL”)
    Calculated field:IIF ([calc field] = 1, “N”, “Y”)

    but its not working.
    waiting for u r reply…

  11. Sunil
    I think you cannot use a BC field in ‘Value’ Field of Applet User Property. You must use a expression which returns a N/Y value to make applet user property work.

  12. Sunil
    I think you cannot use a BC field in ‘Value’ Field of Applet User Property. You must use a expression which returns a N/Y value to make applet user property work.

  13. Thanks for the post. I am able to do the same requirement. In my case i need to do 3 thinks extra.

    1) Populate the Destination BC.

    2) Uncheck the “Use Primary Join”

    3) Select Source Field based on my requirement.

Leave a Reply

Contribute