2017-12-20 25 views
0

자산 참조 필드 중 하나를 참여자 참조와 연결하려고하는 트랜잭션을 사용하여 자산을 추가하려고합니다. 하지만 자산을 사용하여 참가자의 이름을 얻으 려 할 때 나를 보여주고 있습니다. undefined참여자 관계가있는 트랜잭션을 사용하여 자산 추가

참가자가 이미 있습니다. 이 거래 전용 자산을 사용하여 새 참여자를 만들고 싶지 않습니다.

asset TestAsset identified by id { 
    o String id 
    --> TestPart part 
} 

participant TestPart identified by id { 
    o String id 
    o String name 
} 

transaction AddTestAsset { 
    o String aId 
    o String pId 
} 

Logic.js

function addTestAsset(tx) { 
    var factory = getFactory(); 
    var NAMESPACE = 'org.acme'; 
    var newAsset = factory.newResource(NAMESPACE, 'TestAsset', tx.aId); 
    newAsset.part = factory.newRelationship(NAMESPACE, 'TestPart', tx.pId); 
    console.log(newAsset.part.name); //Showing undefined 
    return getAssetRegistry(NAMESPACE + '.TestAsset') 
     .then(function (aReg) { 
      return aReg.add(newAsset); 
     }); 

나는 UI 양식에서 aIdpId을 얻고있다.

다른 방법이 있습니까?

답변

1

이 질문은 질문과 Rocket.Chat 채널에 대답했다

https://chat.hyperledger.org/channel/composer

그러나 여기에 요약 다음 name 요소는 참가자 관계로 정의되지 않는다 당신의 console.log(newAsset.part.name); 문으로

있다 해결되지 않았습니다. console.log(newAsset.part);을 사용하면 참여자가 아닌 관계 오브젝트임을 알 수 있습니다.

존재하지 않는 참가자에 대해 관계를 만들 수 있습니다. 여기서는 ACL 제한을 통해 참가자를 볼 수있는 권한이 없으므로 관계를 만들 수 있습니다.

getParticipantRegistry

으로 참가자의 존재를 확인하는 코드를 작성할 수 있습니다.