Giter Club home page Giter Club logo

Comments (9)

georged avatar georged commented on June 4, 2024

Hi @Part-A,
this statuscode is invalid for the active state code. Try setting statecode as well:

$task->statecode = 1;
$task->statuscode = 5;

Cheers
George

from php-crm-toolkit.

Part-A avatar Part-A commented on June 4, 2024

Unfortunately, statecode is not valid for create or update, as demonstrated here:

(
    [logicalName] => statecode
    [label] => Activity Status
    [description] => Shows whether the task is open, completed, or canceled. Completed and canceled tasks are read-only and can't be edited.
    [format] => 
    [maxLength] => 0
    [isCustom] => 
    [imeMode] => 
    [isPrimaryId] => 
    [isPrimaryName] => 
    [type] => State
    [isLookup] => 
    [isValidForCreate] => 
    [isValidForUpdate] => 
    [isValidForRead] => 1
    [requiredLevel] => SystemRequired
    [attributeOf] => 
    [optionSet] => AlexaCRM\CRMToolkit\Entity\OptionSet Object
        (
            [name] => task_statecode
            [type] => State
            [displayName] => Status of the task.
            [description] => Status of the task.
            [options] => Array
                (
                    [0] => Open
                    [1] => Completed
                    [2] => Canceled
                )

            [isGlobal] => 
        )

    [lookupTypes] => 
)

Therefore AlexaCRM\CRMToolkit\Entity rejects the setting of statecode

from php-crm-toolkit.

georged avatar georged commented on June 4, 2024

I just tried it with SDK, it's not possible to create completed tasks. Instead, you should do something like

$tid = $task->create();
$task = $this->dynamics->entity('task', $tid);
$task->statecode = new OptionSetValue(1); // completed 
$task->statuscode = new OptionSetValue(5); // completed
$task->update();
return $tid;

from php-crm-toolkit.

Part-A avatar Part-A commented on June 4, 2024

Thank you for your suggestion, your help is very much appreciated, unfortunately, it does not work.

Because 'statecode' is not valid for update as shown in the Attribute details above, this code in Entity.php blocks the update:

            /* Check that this property can be set in Creation or Update */
            if ( $this->attributes[ $property ]->isValidForCreate == false && $this->attributes[ $property ]->isValidForUpdate == false ) {
                trigger_error( 'Property ' . $property . ' of the ' . $this->entityLogicalName
                               . ' entity cannot be set', E_USER_NOTICE );

                return;
            }

Therefore, this leaves the task with the following two entries, which as you have already stated is an invalid state for 'statuscode' when 'statecode' is set as Open

               (
                   [Value] => AlexaCRM\CRMToolkit\OptionSetValue Object
                       (
                           [value] => 0
                           [label] => Open
                       )

                   [Changed] => 
               )
               (
                   [Value] => AlexaCRM\CRMToolkit\OptionSetValue Object
                       (
                           [value] => 5
                           [label] => Completed
                       )

                   [Changed] => 1
               )

This state throws an exception on update.

from php-crm-toolkit.

Part-A avatar Part-A commented on June 4, 2024

Temporarily disabling the code in Entity.php, does allow the setting of 'statecode'. Giving the following for the task entity:

            [statecode] => Array
                (
                    [Value] => AlexaCRM\CRMToolkit\OptionSetValue Object
                        (
                            [value] => 1
                            [label] => Completed
                        )

                    [Changed] => 1
                )

However, on update, this still throws an exception:

[Exception]
Unable to retrieve data from Dynamics CRM

from php-crm-toolkit.

georged avatar georged commented on June 4, 2024

Hmmm, statecode should be valid for update and the sample update above should work.
We'll investigate further.
Thanks
George

from php-crm-toolkit.

georged avatar georged commented on June 4, 2024

@Part-A
What's your CRM version?

from php-crm-toolkit.

Part-A avatar Part-A commented on June 4, 2024

Microsoft Dynamics® CRM 2015
(7.0.1.129) (DB 7.0.1.129)

from php-crm-toolkit.

georged avatar georged commented on June 4, 2024

@Part-A,

that would explain it. You can't update statuscode and statecode in that version, you need to use SetStateRequest. See the docs:

For Microsoft Dynamics CRM Online organizations, this feature is available only if your organization has updated to Dynamics CRM Online 2015 Update 1. This feature is not available for Dynamics CRM (on-premises).

By "on-premises" they meant 2015 on-premises. 2016 and above should be fine. We've tested updating on Dynamics 365 Online instance and it worked just fine.

from php-crm-toolkit.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.