Resource or concept expected












1















I am new to composer playground but get the error mentioned in the title. There is something wrong in my transaction code. Help is greatly appreciated.



logic.js:



    /**
* Make an entry for the action performed
* @param {org.gbpcs.network.Document_Transaction} tx - transaction that contains the document,
the user and the new action taken.
* @transaction
*/
async function documentAction(tx) {


// add document action to user story
tx.modifier.actions.push(tx.action.action_id);
let assetRegistry = await getAssetRegistry('org.gbpcs.network.User')
// persist the state of the user
await assetRegistry.update(tx.modifier.actions);


// add document action to document story
tx.document.actions.push(tx.action.action_id);
assetRegistry = await getAssetRegistry('org.gbpcs.network.Document')
// persist the state of the document actions
await assetRegistry.update(tx.document.actions);


// emit a notification that entry was made
let actionNotification = getFactory().newEvent('org.gbpcs.network', 'Action_Notification');
actionNotification.document = tx.document;
actionNotification.user = tx.modifier;
emit(actionNotification);


}



model



namespace org.gbpcs.network

enum OPERATION {
o READ
o WRITE
o UPDATE
o DELETE
o CREATE
}

asset Document identified by document_id{
o String document_id
// list of action_ids
o String actions
}

participant User identified by user_id {
o String user_id
// list of actions_ids
o String actions
}

asset Document_Action identified by action_id {

o String action_id
o DateTime time
o Boolean success
o OPERATION operation

}

transaction Document_Transaction {
// document action was performed upon
--> Document document
// user that performed this action
--> User modifier
// action that was performed upon the document
--> Document_Action action
}

event Action_Notification {
--> User user
--> Document document
}


As mentioned above, the error exists when i perform a Document_transaction in Composer playground.
I have looked up the errors but they seem to be very model specific. Therefore, I am aware that the error occured to others as well.










share|improve this question



























    1















    I am new to composer playground but get the error mentioned in the title. There is something wrong in my transaction code. Help is greatly appreciated.



    logic.js:



        /**
    * Make an entry for the action performed
    * @param {org.gbpcs.network.Document_Transaction} tx - transaction that contains the document,
    the user and the new action taken.
    * @transaction
    */
    async function documentAction(tx) {


    // add document action to user story
    tx.modifier.actions.push(tx.action.action_id);
    let assetRegistry = await getAssetRegistry('org.gbpcs.network.User')
    // persist the state of the user
    await assetRegistry.update(tx.modifier.actions);


    // add document action to document story
    tx.document.actions.push(tx.action.action_id);
    assetRegistry = await getAssetRegistry('org.gbpcs.network.Document')
    // persist the state of the document actions
    await assetRegistry.update(tx.document.actions);


    // emit a notification that entry was made
    let actionNotification = getFactory().newEvent('org.gbpcs.network', 'Action_Notification');
    actionNotification.document = tx.document;
    actionNotification.user = tx.modifier;
    emit(actionNotification);


    }



    model



    namespace org.gbpcs.network

    enum OPERATION {
    o READ
    o WRITE
    o UPDATE
    o DELETE
    o CREATE
    }

    asset Document identified by document_id{
    o String document_id
    // list of action_ids
    o String actions
    }

    participant User identified by user_id {
    o String user_id
    // list of actions_ids
    o String actions
    }

    asset Document_Action identified by action_id {

    o String action_id
    o DateTime time
    o Boolean success
    o OPERATION operation

    }

    transaction Document_Transaction {
    // document action was performed upon
    --> Document document
    // user that performed this action
    --> User modifier
    // action that was performed upon the document
    --> Document_Action action
    }

    event Action_Notification {
    --> User user
    --> Document document
    }


    As mentioned above, the error exists when i perform a Document_transaction in Composer playground.
    I have looked up the errors but they seem to be very model specific. Therefore, I am aware that the error occured to others as well.










    share|improve this question

























      1












      1








      1








      I am new to composer playground but get the error mentioned in the title. There is something wrong in my transaction code. Help is greatly appreciated.



      logic.js:



          /**
      * Make an entry for the action performed
      * @param {org.gbpcs.network.Document_Transaction} tx - transaction that contains the document,
      the user and the new action taken.
      * @transaction
      */
      async function documentAction(tx) {


      // add document action to user story
      tx.modifier.actions.push(tx.action.action_id);
      let assetRegistry = await getAssetRegistry('org.gbpcs.network.User')
      // persist the state of the user
      await assetRegistry.update(tx.modifier.actions);


      // add document action to document story
      tx.document.actions.push(tx.action.action_id);
      assetRegistry = await getAssetRegistry('org.gbpcs.network.Document')
      // persist the state of the document actions
      await assetRegistry.update(tx.document.actions);


      // emit a notification that entry was made
      let actionNotification = getFactory().newEvent('org.gbpcs.network', 'Action_Notification');
      actionNotification.document = tx.document;
      actionNotification.user = tx.modifier;
      emit(actionNotification);


      }



      model



      namespace org.gbpcs.network

      enum OPERATION {
      o READ
      o WRITE
      o UPDATE
      o DELETE
      o CREATE
      }

      asset Document identified by document_id{
      o String document_id
      // list of action_ids
      o String actions
      }

      participant User identified by user_id {
      o String user_id
      // list of actions_ids
      o String actions
      }

      asset Document_Action identified by action_id {

      o String action_id
      o DateTime time
      o Boolean success
      o OPERATION operation

      }

      transaction Document_Transaction {
      // document action was performed upon
      --> Document document
      // user that performed this action
      --> User modifier
      // action that was performed upon the document
      --> Document_Action action
      }

      event Action_Notification {
      --> User user
      --> Document document
      }


      As mentioned above, the error exists when i perform a Document_transaction in Composer playground.
      I have looked up the errors but they seem to be very model specific. Therefore, I am aware that the error occured to others as well.










      share|improve this question














      I am new to composer playground but get the error mentioned in the title. There is something wrong in my transaction code. Help is greatly appreciated.



      logic.js:



          /**
      * Make an entry for the action performed
      * @param {org.gbpcs.network.Document_Transaction} tx - transaction that contains the document,
      the user and the new action taken.
      * @transaction
      */
      async function documentAction(tx) {


      // add document action to user story
      tx.modifier.actions.push(tx.action.action_id);
      let assetRegistry = await getAssetRegistry('org.gbpcs.network.User')
      // persist the state of the user
      await assetRegistry.update(tx.modifier.actions);


      // add document action to document story
      tx.document.actions.push(tx.action.action_id);
      assetRegistry = await getAssetRegistry('org.gbpcs.network.Document')
      // persist the state of the document actions
      await assetRegistry.update(tx.document.actions);


      // emit a notification that entry was made
      let actionNotification = getFactory().newEvent('org.gbpcs.network', 'Action_Notification');
      actionNotification.document = tx.document;
      actionNotification.user = tx.modifier;
      emit(actionNotification);


      }



      model



      namespace org.gbpcs.network

      enum OPERATION {
      o READ
      o WRITE
      o UPDATE
      o DELETE
      o CREATE
      }

      asset Document identified by document_id{
      o String document_id
      // list of action_ids
      o String actions
      }

      participant User identified by user_id {
      o String user_id
      // list of actions_ids
      o String actions
      }

      asset Document_Action identified by action_id {

      o String action_id
      o DateTime time
      o Boolean success
      o OPERATION operation

      }

      transaction Document_Transaction {
      // document action was performed upon
      --> Document document
      // user that performed this action
      --> User modifier
      // action that was performed upon the document
      --> Document_Action action
      }

      event Action_Notification {
      --> User user
      --> Document document
      }


      As mentioned above, the error exists when i perform a Document_transaction in Composer playground.
      I have looked up the errors but they seem to be very model specific. Therefore, I am aware that the error occured to others as well.







      hyperledger hyperledger-composer






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Nov 20 '18 at 20:15









      SchaschiSchaschi

      82




      82
























          1 Answer
          1






          active

          oldest

          votes


















          1















          1. tx.modifier is a reference of Participant User not of Asset so you need getParticipantRegistry instead of getAssetRegistry

          2. you need to update only tx.modifier in participantRegistry.update() and tx.document in assetRegistry.update()


          Here Changed login.js



              /**
          * Make an entry for the action performed
          * @param {org.gbpcs.network.Document_Transaction} tx - transaction that contains the document,
          the user and the new action taken.
          * @transaction
          */
          async function documentAction(tx) {


          // add document action to user story
          tx.modifier.actions.push(tx.action.action_id);
          let participantRegistry = await getParticipantRegistry('org.gbpcs.network.User')
          // persist the state of the user
          await participantRegistry.update(tx.modifier);


          // add document action to document story
          tx.document.actions.push(tx.action.action_id);
          let assetRegistry = await getAssetRegistry('org.gbpcs.network.Document')
          // persist the state of the document actions
          await assetRegistry.update(tx.document);


          // emit a notification that entry was made
          let actionNotification = getFactory().newEvent('org.gbpcs.network', 'Action_Notification');
          actionNotification.document = tx.document;
          actionNotification.user = tx.modifier;
          emit(actionNotification);
          }





          share|improve this answer























            Your Answer






            StackExchange.ifUsing("editor", function () {
            StackExchange.using("externalEditor", function () {
            StackExchange.using("snippets", function () {
            StackExchange.snippets.init();
            });
            });
            }, "code-snippets");

            StackExchange.ready(function() {
            var channelOptions = {
            tags: "".split(" "),
            id: "1"
            };
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function() {
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled) {
            StackExchange.using("snippets", function() {
            createEditor();
            });
            }
            else {
            createEditor();
            }
            });

            function createEditor() {
            StackExchange.prepareEditor({
            heartbeatType: 'answer',
            autoActivateHeartbeat: false,
            convertImagesToLinks: true,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: 10,
            bindNavPrevention: true,
            postfix: "",
            imageUploader: {
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            },
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            });


            }
            });














            draft saved

            draft discarded


















            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53400862%2fresource-or-concept-expected%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown

























            1 Answer
            1






            active

            oldest

            votes








            1 Answer
            1






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            1















            1. tx.modifier is a reference of Participant User not of Asset so you need getParticipantRegistry instead of getAssetRegistry

            2. you need to update only tx.modifier in participantRegistry.update() and tx.document in assetRegistry.update()


            Here Changed login.js



                /**
            * Make an entry for the action performed
            * @param {org.gbpcs.network.Document_Transaction} tx - transaction that contains the document,
            the user and the new action taken.
            * @transaction
            */
            async function documentAction(tx) {


            // add document action to user story
            tx.modifier.actions.push(tx.action.action_id);
            let participantRegistry = await getParticipantRegistry('org.gbpcs.network.User')
            // persist the state of the user
            await participantRegistry.update(tx.modifier);


            // add document action to document story
            tx.document.actions.push(tx.action.action_id);
            let assetRegistry = await getAssetRegistry('org.gbpcs.network.Document')
            // persist the state of the document actions
            await assetRegistry.update(tx.document);


            // emit a notification that entry was made
            let actionNotification = getFactory().newEvent('org.gbpcs.network', 'Action_Notification');
            actionNotification.document = tx.document;
            actionNotification.user = tx.modifier;
            emit(actionNotification);
            }





            share|improve this answer




























              1















              1. tx.modifier is a reference of Participant User not of Asset so you need getParticipantRegistry instead of getAssetRegistry

              2. you need to update only tx.modifier in participantRegistry.update() and tx.document in assetRegistry.update()


              Here Changed login.js



                  /**
              * Make an entry for the action performed
              * @param {org.gbpcs.network.Document_Transaction} tx - transaction that contains the document,
              the user and the new action taken.
              * @transaction
              */
              async function documentAction(tx) {


              // add document action to user story
              tx.modifier.actions.push(tx.action.action_id);
              let participantRegistry = await getParticipantRegistry('org.gbpcs.network.User')
              // persist the state of the user
              await participantRegistry.update(tx.modifier);


              // add document action to document story
              tx.document.actions.push(tx.action.action_id);
              let assetRegistry = await getAssetRegistry('org.gbpcs.network.Document')
              // persist the state of the document actions
              await assetRegistry.update(tx.document);


              // emit a notification that entry was made
              let actionNotification = getFactory().newEvent('org.gbpcs.network', 'Action_Notification');
              actionNotification.document = tx.document;
              actionNotification.user = tx.modifier;
              emit(actionNotification);
              }





              share|improve this answer


























                1












                1








                1








                1. tx.modifier is a reference of Participant User not of Asset so you need getParticipantRegistry instead of getAssetRegistry

                2. you need to update only tx.modifier in participantRegistry.update() and tx.document in assetRegistry.update()


                Here Changed login.js



                    /**
                * Make an entry for the action performed
                * @param {org.gbpcs.network.Document_Transaction} tx - transaction that contains the document,
                the user and the new action taken.
                * @transaction
                */
                async function documentAction(tx) {


                // add document action to user story
                tx.modifier.actions.push(tx.action.action_id);
                let participantRegistry = await getParticipantRegistry('org.gbpcs.network.User')
                // persist the state of the user
                await participantRegistry.update(tx.modifier);


                // add document action to document story
                tx.document.actions.push(tx.action.action_id);
                let assetRegistry = await getAssetRegistry('org.gbpcs.network.Document')
                // persist the state of the document actions
                await assetRegistry.update(tx.document);


                // emit a notification that entry was made
                let actionNotification = getFactory().newEvent('org.gbpcs.network', 'Action_Notification');
                actionNotification.document = tx.document;
                actionNotification.user = tx.modifier;
                emit(actionNotification);
                }





                share|improve this answer














                1. tx.modifier is a reference of Participant User not of Asset so you need getParticipantRegistry instead of getAssetRegistry

                2. you need to update only tx.modifier in participantRegistry.update() and tx.document in assetRegistry.update()


                Here Changed login.js



                    /**
                * Make an entry for the action performed
                * @param {org.gbpcs.network.Document_Transaction} tx - transaction that contains the document,
                the user and the new action taken.
                * @transaction
                */
                async function documentAction(tx) {


                // add document action to user story
                tx.modifier.actions.push(tx.action.action_id);
                let participantRegistry = await getParticipantRegistry('org.gbpcs.network.User')
                // persist the state of the user
                await participantRegistry.update(tx.modifier);


                // add document action to document story
                tx.document.actions.push(tx.action.action_id);
                let assetRegistry = await getAssetRegistry('org.gbpcs.network.Document')
                // persist the state of the document actions
                await assetRegistry.update(tx.document);


                // emit a notification that entry was made
                let actionNotification = getFactory().newEvent('org.gbpcs.network', 'Action_Notification');
                actionNotification.document = tx.document;
                actionNotification.user = tx.modifier;
                emit(actionNotification);
                }






                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered Nov 21 '18 at 7:08









                Mahesh RajputMahesh Rajput

                2959




                2959






























                    draft saved

                    draft discarded




















































                    Thanks for contributing an answer to Stack Overflow!


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid



                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.


                    To learn more, see our tips on writing great answers.




                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function () {
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53400862%2fresource-or-concept-expected%23new-answer', 'question_page');
                    }
                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown







                    Popular posts from this blog

                    "Incorrect syntax near the keyword 'ON'. (on update cascade, on delete cascade,)

                    Alcedinidae

                    Origin of the phrase “under your belt”?