با سلام من میخوام یک هویت رو ویرایش کنم مطالب فروم رو کامل خوندم ، برای اینکه اطلاعاتی مثل موبایل یا آدرس رو 2 یا چند بار روی هویت نریزم نیاز دارم که اول داده های شخص رو به دست بیارم برای این منظور از متد های FindpersonByIdو FindIdentityById استفاده میکنم جواب هم میگیرم اما جواب ها به این صورته: FindIdentityById:
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"><s:Body><FindIdentityByIdResponse xmlns="http://tempuri.org/"><FindIdentityByIdResult xmlns:a="http://schemas.datacontract.org/2004/07/Septa.PayamGostar.ServiceLayer.Contract.PGContracts.DataContracts" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"><a:Message>آیتمی برای این درخواست پیدا نشد.</a:Message><a:Success>true</a:Success><a:IdentityInfo i:nil="true"/><a:IdentityInfoList i:nil="true"/></FindIdentityByIdResult></FindIdentityByIdResponse></s:Body></s:Envelope>
و در FindpersonById:
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"><s:Body><FindPersonByIdResponse xmlns="http://tempuri.org/"><FindPersonByIdResult xmlns:a="http://schemas.datacontract.org/2004/07/Septa.PayamGostar.ServiceLayer.Contract.PGContracts.DataContracts" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"><a:Message>شخصی با این مشخصه موجود نمی باشد</a:Message><a:Success>false</a:Success><a:PersonInfo i:nil="true"/><a:PersonInfoList i:nil="true"/></FindPersonByIdResult></FindPersonByIdResponse></s:Body></s:Envelope>
این در حالیه که هر دوی این متدها در soapui خروجی کامل و دقیق دارند.
نکاتی که شاید در راهنمایی اهمیت داشته باشن:
در کد های ارسالی مقادیرcrmid-identityid-personid هر کدوم رو میذارم جواب باز هم همین موارد بالاست.
نیاز دارم حتما تمام اطلاعات مخاطب رو فراخوانی کنم پس نمیتونم از searchperson یا searchidentity استفاده کنم.
در کد ارسالی مقادیری مثل CrmObjectTypeCod هم مضاف بر crmid قرار دادم ولی باز هم جواب همونهای بالاست.
سوال اساسی من اینه که چه کدی رو برای فراخوانی تمامی داده های شخص وارد کنم با توجه به توضیحات بالا؟
نمونه کد استفاده شده ی خودم هم که جواهای بالا رو میگیرم در متد person این هست:
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Header/>
<s:Body>
<FindPersonById xmlns="http://tempuri.org/">
<username>؟؟؟</username>
<password>؟؟؟</password>
<person xmlns:d4p1="http://schemas.datacontract.org/2004/07/Septa.PayamGostar.ServiceLayer.Contract.PGContracts.DataContracts"
xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<!-- نوع شیء در CRM -->
<d4p1:CrmId>؟؟؟</d4p1:CrmId>
</person>
</FindPersonById>
</s:Body>
</s:Envelope>
با سلام و احترام
سمپل زیر در Postman تست شده و خروجی به طور کامل نمایش داده میشود.
URL:
POST: http(s)://[crm address]/services/api/iperson.svc
Headers:
Content-Type: text/xml;charset=utf-8
SOAPAction: http://tempuri.org/IPerson/FindPersonById
Body: XML