اپدیت کردن اطلاعات ...
 
آگاه‌سازی‌ها
پاک‌کردن همه

[حل شده] اپدیت کردن اطلاعات مشتری

21 ارسال ها
2 کاربران
2 Likes
210 نمایش‌
0
شروع کننده موضوع

از چه سرویسی میتونم برای آپدیت کردن اطلاعات یک مشتری(مخاطب حقیقی) استفاده کنم؟
به صورتی که بر اساس شماره تلفن مشتری، اطلاعاتش آپدیت بشه و بقیه اطلاعات وارد سیستم بشه.

تو فایل person مربوطه به مستندات API همچین سرویسی رو ندیدم.

برچسب‌های موضوع
8 پاسخ
1

نمونه کد wcfstorm  جهت استفاده از سرویس identity رو هم براتون میزارم

<SaveIdentity>
<MethodParameters>
<username>admin</username>
<password>admin</password>
<identity actualtype="OrganizationInfo" basetype="IdentityInfo">
<BusinessType isNull="true" />
<EconomicCode isNull="true" />
<ManagerId isNull="true" />
<OwnershipType isNull="true" />
<Personnel isNull="true" />
<RegisterDate isNull="true" />
<RegisterNumber isNull="true" />
<ShareType isNull="true" />
<TradeType isNull="true" />
<Trademark isNull="true" />
<AddressContacts isNull="true" />
<Balance isNull="true" />
<Categories attr0="CategoryInfoArray" isNull="false">
<CategoryInfoArray0>
<Id isNull="true" />
<IdentityId isNull="true" />
<IsDeleted>False</IsDeleted>
<Key>zone0</Key>
<Name isNull="true" />
<Type isNull="true" />
</CategoryInfoArray0>
</Categories>
<Classification isNull="true" />
<ColorName isNull="true" />
<CustomerDate isNull="true" />
<CustomerNumber isNull="true" />
<DontEmail isNull="true" />
<DontFax isNull="true" />
<DontPhoneCall isNull="true" />
<DontSms isNull="true" />
<DontSocialSms isNull="true" />
<Emails isNull="true" />
<IdentityType>حقوقی</IdentityType>
<NickName>تست</NickName>
<OtherUsername isNull="true" />
<PhoneContacts isNull="true" />
<SaleUsername isNull="true" />
<SourceType isNull="true" />
<SupportUsername isNull="true" />
<Website isNull="true" />
<CreatDate>1/1/0001 12:00:00 AM</CreatDate>
<CrmId isNull="true" />
<CrmObjectTypeCode>organization</CrmObjectTypeCode>
<CrmObjectTypeId isNull="true" />
<CrmObjectTypeIndex>0</CrmObjectTypeIndex>
<CrmObjectTypeName isNull="true" />
<ExtendedProperties isNull="true" />
<ModifyDate>1/1/0001 12:00:00 AM</ModifyDate>
<ParentCrmObjectId isNull="true" />
<ProcessStateIndex isNull="true" />
<RefId isNull="true" />
<Stage isNull="true" />
<StageId isNull="true" />
<Tags isNull="true" />
</identity>
</MethodParameters>
</SaveIdentity>

0

سلام 

شما میتوانید هم از سرویس person استفاده کنید 

و هم از سرویس identity و در آن اگر identitytype را با person  مقدار دهی کنید  , info شما هم personinfo باشد.

 در دو سرویس نام برده شده چنانچه  مقدار crmid را مقدار دهی کنید   میتوتنید اون هویت  حقیقی را ویرایش کنید

مورد دوم رو دقیق متوجه نشدم

ولی اگر منظورتون اینه که بر اساس شماره تلفن یک مشتری را پیدا کنید سپس اقدام به ویرایش آن کنید  باید بگم که

میتونید در سرویس IIdentity.svc  توسط متد findidentityByPhonenumber  اقدام به پیدا کردن  یک هویت کنید  سپس id هویت پیدا شده را در متد saveidentity  استفاده کنید

0
شروع کننده موضوع

از سرویس identity استفاده کردم خطای زیر رو میده :

Object reference not set to an instance of an object

پارامترهای ارسالی :

$params = [
'username' => $username,
'password' => $password,
'identity' => [
'IdentityId' => $crmId,
'CrmObjectTypeCode' => 'customerCode',
'IdentityType' => 'حقیقی',
'FirstName' => 'آپدیت',
'LastName' => 'آپدیت',
'CustomerDate' => the_date('Y m d'),
'ContactAddress' => [
'State' => 'تهران',
'City' => 'تهران',
'Address' => 'ایران- تهران - تهران',
]
]
];

PG-Admin PG-Admin 17 دی 1399 10:46 ق.ظ

category info رو مقدار دهی نکردید

mohammadk شروع کننده موضوع 17 دی 1399 12:01 ق.ظ

تو وب سرویس و مستنداتش همچین پارامتری وجود نداره.فکر کنم منظورتون IdentityCategory باشه.

کد رو به صورت زیر اصلاح کردم و طبق فایل مستندات IdentityCategory، API رو با استفاده از json مقدار دهی کردم اما بازم همون خطا رو میده

$params = [
'username' => $username,
'password' => $password,
'identity' => [
'IdentityId' => $crmId,
'CrmObjectTypeCode' => 'customerCode',
'IdentityCategory' => $myJSON,
'IdentityType' => 'حقیقی',
'FirstName' => 'آپدیت',
'LastName' => 'آپدیت',
'CustomerDate' => the_date('Y m d'),
'ContactAddress' => [
'State' => 'تهران',
'City' => 'تهران',
'Address' => 'ایران- تهران - تهران',
],

]
];

PG-Admin PG-Admin 17 دی 1399 2:15 ب.ظ

به نمونه کد wcf storm در پست زیر توجه کنید یک نمونه کامل و اجرا شده است
در آن یک بخش وجود دارد به نام تگ category که در آن key مربوط به دسته بندی مورد نظر را مقدار دهی کنید

False
zone0

0
شروع کننده موضوع

من تمام فیلدهایی که الزامی بوده رو مقداردهی کردم. مشکل اینه اروری که میده مربوط به پارامترهای ارسالی هست که یا اسم هاشون فرق کرده و توی فایل راهنما تغییر نکرده، یا فیلددیگه ای هست که الزامیه و مقداردهی نشده.
(چون همین مشکل تغییر اسم فیلدها در سرویس Person هم وجود داشت که مشخص شد برخی فیلدها اسمشون تغییر کرده

)
$params = array(
'username' => $username, 
'password' => $password, 
'identity' => array(
'CrmObjectTypeCode' => 'customerCode',
'IdentityType' => 'Person',
'Gender' => 'مرد',
'LastName' => 'آپدیت',
'NickName' => 'آپدیت',
'IdentityId' => $crmId,
'CustomerDate' => the_date('Y m d'),
'Categories' => array(
array(
'Key' => 'customerConsumer'
)
),
'PhoneContacts' => array(
array(
'PhonePrefix' => 'Mobile',
'PhoneNumber' => '09100000000',
'PhoneType' => 'موبایل',
'IsDefault' => true
),
),
'AddressContacts' => array(
array(
'AddressType' => 'سایر',
'Address' => 'تهران-تهران-ولیعصر'
),
),
)
);

PG-Admin PG-Admin 19 دی 1399 12:53 ق.ظ

دوست عزیز همانطور که عرض کردم خدمتتون ما بجز .net زبان دیگری را پشتیبانی نمیدیم

پس باید با یه زبان مشترک باهم صحبت کنیم اونم میشه ابزار هایی مثل wcfTestClient و wcfTestStorm

که نمونه استفاده شده در wcfteststorm هم براتون گذاشتم در همین پست
شما دقیقا مثل سمپل گذاشته شده در wcfteststorm عمل کنید و اگر اونجا خطاایی دریافت کردید برای من xml آن را خروجی بگیرید و بفرستید تا بتونم بهتر راهنماییتون کنم
سرویس identity سرویسیه که الان توسط تعداد زیادی از مشتری ها و حتی خودمون داره استفاده میشه و مشکلی بر عدم کارکرد اون نداریم
پس لطفا طبق راهنمایی گفته شده عمل کنید تا ایشالا مشکلتون هرچه سریعتر بتونیم حل کنیم
با تشکر

mohammadk شروع کننده موضوع 20 دی 1399 11:35 ق.ظ

این کد رو اجرا کردم تو نرم افزاری که گفتین و بدون خطا اجرا شد.اما من میخوام اطلاعات یک مشتری آپدیت بشه نه اینکه مشتری جدید اضافه کنم.

test
test

False
customerConsumer

حقیقی
تست
تست

1/1/0001 12:00:00 AM

customerCode

0

1/1/0001 12:00:00 AM

0
شروع کننده موضوع

<SaveIdentity>
<MethodParameters>
<username>test</username>
<password>test</password>
<identity actualtype="PersonInfo" basetype="IdentityInfo">
<BusinessType isNull="true" />
<EconomicCode isNull="true" />
<ManagerId isNull="true" />
<OwnershipType isNull="true" />
<Personnel isNull="true" />
<RegisterDate isNull="true" />
<RegisterNumber isNull="true" />
<ShareType isNull="true" />
<TradeType isNull="true" />
<Trademark isNull="true" />
<AddressContacts isNull="true" />
<Balance isNull="true" />
<Categories attr0="CategoryInfoArray" isNull="false">
<CategoryInfoArray0>
<Id isNull="true" />
<IdentityId isNull="true" />
<IsDeleted>False</IsDeleted>
<Key>customerConsumer</Key>
<Name isNull="true" />
<Type isNull="true" />
</CategoryInfoArray0>
</Categories>
<Classification isNull="true" />
<ColorName isNull="true" />
<CustomerDate isNull="true" />
<CustomerNumber isNull="true" />
<DontEmail isNull="true" />
<DontFax isNull="true" />
<DontPhoneCall isNull="true" />
<DontSms isNull="true" />
<DontSocialSms isNull="true" />
<Emails isNull="true" />
<IdentityType>حقیقی</IdentityType>
<NickName>تست</NickName>
<LastName>تست</LastName>
<OtherUsername isNull="true" />
<PhoneContacts isNull="true" />
<SaleUsername isNull="true" />
<SourceType isNull="true" />
<SupportUsername isNull="true" />
<Website isNull="true" />
<CreatDate>1/1/0001 12:00:00 AM</CreatDate>
<CrmId isNull="true" />
<CrmObjectTypeCode>customerCode</CrmObjectTypeCode>
<CrmObjectTypeId isNull="true" />
<CrmObjectTypeIndex>0</CrmObjectTypeIndex>
<CrmObjectTypeName isNull="true" />
<ExtendedProperties isNull="true" />
<ModifyDate>1/1/0001 12:00:00 AM</ModifyDate>
<ParentCrmObjectId isNull="true" />
<ProcessStateIndex isNull="true" />
<RefId isNull="true" />
<Stage isNull="true" />
<StageId isNull="true" />
<Tags isNull="true" />
</identity>
</MethodParameters>
</SaveIdentity>
PG-Admin PG-Admin 20 دی 1399 11:57 ق.ظ

حالا برای قرار گرفتن در حالت آپدیت تو همین کدی که الان فرستادید کافیه مقدار
را بجای null
مقدار id اون هویتی که میخواهید ویرایشش کنید بزارید

0
شروع کننده موضوع

به این صورت منظورتونه؟

<Id>83b4a96b-fdfa-4358-9efd-4babc71b1153</Id>

الان کد زیر رو اجرا کردم یه هویت دیگه ایجاد شد و قبلی تغییر نکرد



<SaveIdentity>
<MethodParameters>
<username>test</username>
<password>test</password>
<identity actualtype="PersonInfo" basetype="IdentityInfo">
<OwnershipType isNull="true" />
<Personnel isNull="true" />
<RegisterDate isNull="true" />
<RegisterNumber isNull="true" />
<ShareType isNull="true" />
<TradeType isNull="true" />
<Trademark isNull="true" />
<AddressContacts isNull="true" />
<Balance isNull="true" />
<Categories attr0="CategoryInfoArray" isNull="false">
<CategoryInfoArray0>
<Id>83b4a96b-fdfa-4358-9efd-4babc71b1153</Id>
<IdentityId isNull="true" />
<IsDeleted>False</IsDeleted>
<Key>customerConsumer</Key>
<Name isNull="true" />
<Type isNull="true" />
</CategoryInfoArray0>
</Categories>
<Classification isNull="true" />
<ColorName isNull="true" />
<CustomerDate isNull="true" />
<CustomerNumber isNull="true" />
<DontEmail isNull="true" />
<DontFax isNull="true" />
<DontPhoneCall isNull="true" />
<DontSms isNull="true" />
<DontSocialSms isNull="true" />
<Emails isNull="true" />
<IdentityType>حقیقی</IdentityType>
<NickName>آپدیت شده</NickName>
<FirstName>آپدیت شده</FirstName>
<LastName>تست</LastName>
<OtherUsername isNull="true" />
<PhoneContacts isNull="true" />
<SaleUsername isNull="true" />
<SourceType isNull="true" />
<SupportUsername isNull="true" />
<Website isNull="true" />
<CreatDate>1/1/0001 12:00:00 AM</CreatDate>
<CrmId isNull="true" />
<CrmObjectTypeCode>customerCode</CrmObjectTypeCode>
<CrmObjectTypeId isNull="true" />
<CrmObjectTypeIndex>0</CrmObjectTypeIndex>
<CrmObjectTypeName isNull="true" />
<ExtendedProperties isNull="true" />
<ModifyDate>1/1/0001 12:00:00 AM</ModifyDate>
<ParentCrmObjectId isNull="true" />
<ProcessStateIndex isNull="true" />
<RefId isNull="true" />
<Stage isNull="true" />
<StageId isNull="true" />
<Tags isNull="true" />
</identity>
</MethodParameters>
</SaveIdentity>
PG-Admin PG-Admin 20 دی 1399 1:15 ب.ظ

تو این کدی که فرستادید هم 

<CrmId isNull="true" />

رو null مقدار دهی کردید که

mohammadk شروع کننده موضوع 20 دی 1399 3:39 ب.ظ

crmId رو هم مقدار دهی کردم تو نرم افزار درست انجام شد و آپدیت شد. اما همین پارامترها رو از طریق وب سرویس میفرستم همون خطای قبل رو میده

PG-Admin PG-Admin 20 دی 1399 5:16 ب.ظ

والا اگر کد هاتون .net بود بهتر میتونستم راهنمایی تون کنم
اگر تو این ابزار های تست جواب گرفتین پس صد در صد وب سرویس ها داره درست عمل میکنه
شما یه بار دیگه کد هاتون رو با توجعه به این پارامتر ها بازنگری کنید

0
شروع کننده موضوع

از نرم افزار wcf testclient  برای تست استفاده کردم و پارامترهایی که لازم داشتم رو مقدار دهی کردم و تست درست انجام شد.اما همون مقادیر و پارامترها رو تو کد میارم همون خطای قبلی رو میده.

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Header>
<Action s:mustUnderstand="1" xmlns="http://schemas.microsoft.com/ws/2005/05/addressing/none"> http://tempuri.org/IIdentity/SaveIdentity</Action>
</s:Header>
<s:Body>
<SaveIdentity xmlns="http://tempuri.org/">
<username>xxxxxx</username>
<password>xxxxxx</password>
<identity xmlns:d4p1="http://schemas.datacontract.org/2004/07/Septa.PayamGostar.ServiceLayer.Contract.PGContracts.DataContracts" xmlns:i="http://www.w3.org/2001/XMLSchema-instance" i:type="d4p1:PersonInfo">
<d4p1:CreatDate>2021-01-14T10:38:00</d4p1:CreatDate>
<d4p1:CrmId>xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx</d4p1:CrmId>
<d4p1:CrmObjectTypeCode>customerCode</d4p1:CrmObjectTypeCode>
<d4p1:CrmObjectTypeId>648bba38-21be-452a-94e3-79a6ef3604cd</d4p1:CrmObjectTypeId>
<d4p1:CrmObjectTypeIndex>0</d4p1:CrmObjectTypeIndex>
<d4p1:CrmObjectTypeName i:nil="true" />
<d4p1:ExtendedProperties />
<d4p1:ModifyDate>2021-01-14T10:38:00</d4p1:ModifyDate>
<d4p1:ParentCrmObjectId i:nil="true" />
<d4p1:ProcessStateIndex i:nil="true" />
<d4p1:RefId i:nil="true" />
<d4p1:Stage i:nil="true" />
<d4p1:StageId i:nil="true" />
<d4p1:Tags xmlns:d5p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays" />
<d4p1:AddressContacts>
<d4p1:IdentityContactAddress>
<d4p1:Id>2adf18c5-7cc4-422c-8656-1c19fb4fdee6</d4p1:Id>
<d4p1:IsDefault>false</d4p1:IsDefault>
<d4p1:IsDeleted>false</d4p1:IsDeleted>
<d4p1:Address>تهران-یوسف آباد</d4p1:Address>
<d4p1:AddressType>سایر</d4p1:AddressType>
<d4p1:AreaCode i:nil="true" />
<d4p1:City i:nil="true" />
<d4p1:Country i:nil="true" />
<d4p1:State i:nil="true" />
<d4p1:ZipBox i:nil="true" />
<d4p1:ZipCode i:nil="true" />
</d4p1:IdentityContactAddress>
</d4p1:AddressContacts>
<d4p1:Balance i:nil="true" />
<d4p1:Categories>
<d4p1:CategoryInfo>
<d4p1:Id>1c7aab74-34ba-46c0-95c0-661c2398f912</d4p1:Id>
<d4p1:IdentityId>b0a77278-2bee-4b99-bc89-ff6e6df930aa</d4p1:IdentityId>
<d4p1:IsDeleted>false</d4p1:IsDeleted>
<d4p1:Key>customerConsumer</d4p1:Key>
<d4p1:Name i:nil="true" />
<d4p1:Type i:nil="true" />
</d4p1:CategoryInfo>
</d4p1:Categories>
<d4p1:Classification i:nil="true" />
<d4p1:ColorName i:nil="true" />
<d4p1:CustomerDate i:nil="true" />
<d4p1:CustomerNumber i:nil="true" />
<d4p1:DontEmail i:nil="true" />
<d4p1:DontFax i:nil="true" />
<d4p1:DontPhoneCall i:nil="true" />
<d4p1:DontSms i:nil="true" />
<d4p1:DontSocialSms i:nil="true" />
<d4p1:Emails xmlns:d5p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays" />
<d4p1:IdentityType>حقیقی</d4p1:IdentityType>
<d4p1:NickName i:nil="true" />
<d4p1:OtherUsername i:nil="true" />
<d4p1:PhoneContacts />
<d4p1:SaleUsername i:nil="true" />
<d4p1:SourceType i:nil="true" />
<d4p1:SupportUsername i:nil="true" />
<d4p1:Website i:nil="true" />
<d4p1:AreasOfInterest i:nil="true" />
<d4p1:BirthDate i:nil="true" />
<d4p1:Children i:nil="true" />
<d4p1:CreditType i:nil="true" />
<d4p1:Degree i:nil="true" />
<d4p1:Employees />
<d4p1:FacebookUsername i:nil="true" />
<d4p1:FirstName>تست تست</d4p1:FirstName>
<d4p1:Gender>تست</d4p1:Gender>
<d4p1:Hobbies i:nil="true" />
<d4p1:LastName>تست</d4p1:LastName>
<d4p1:MannerType i:nil="true" />
<d4p1:NationalCode i:nil="true" />
<d4p1:PaymentStatusType i:nil="true" />
<d4p1:PersonPrefix i:nil="true" />
<d4p1:PrefferedContactType i:nil="true" />
<d4p1:Spouse i:nil="true" />
</identity>
</SaveIdentity>
</s:Body>
</s:Envelope>
این نوشته در 4 سال قبل توسط mohammadk اصلاح شد
0
شروع کننده موضوع

برای وب سرویس فرصت با نرم افزار wcf test client تست گرفتم.بازم همون خطا رو میده.پشتیبانی میگه وب سرویس مشکلی نداره.

این هم خروجی xml:

 

<d4p1:CreatDate>2021-05-05T13:04:00</d4p1:CreatDate>
<d4p1:CrmId i:nil="true" />
<d4p1:CrmObjectTypeCode>saleOpportunity</d4p1:CrmObjectTypeCode>
<d4p1:CrmObjectTypeId>0319df44-8aa7-475b-bb4f-a08e1f29a69c</d4p1:CrmObjectTypeId>
<d4p1:CrmObjectTypeIndex>0</d4p1:CrmObjectTypeIndex>
<d4p1:CrmObjectTypeName i:nil="true" />
<d4p1:ExtendedProperties i:nil="true" />
<d4p1:ModifyDate>2021-05-05T13:04:00</d4p1:ModifyDate>
<d4p1:ParentCrmObjectId i:nil="true" />
<d4p1:ProcessStateIndex>0</d4p1:ProcessStateIndex>
<d4p1:RefId i:nil="true" />
<d4p1:Stage i:nil="true" />
<d4p1:StageId i:nil="true" />
<d4p1:Tags xmlns:d5p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays" />
<d4p1:Description i:nil="true" />
<d4p1:IdentityId>0319df44-8aa7-475b-bb4f-a08e1f29a69c</d4p1:IdentityId>
<d4p1:Subject>تست</d4p1:Subject>
<d4p1:ClosedDate>2021-05-04T15:31:00</d4p1:ClosedDate>
<d4p1:ClosedDatePersian i:nil="true" />
<d4p1:FailDate>2021-05-05T15:45:00</d4p1:FailDate>
<d4p1:LostCause i:nil="true" />
<d4p1:OpportunitySourceType>website</d4p1:OpportunitySourceType>
<d4p1:OpportunityType>xProduct</d4p1:OpportunityType>
<d4p1:Probability>10</d4p1:Probability>
<d4p1:SaleStage>onTrackOnline</d4p1:SaleStage>
<d4p1:SuccessDate>2021-05-05T15:45:00</d4p1:SuccessDate>
<d4p1:TotalDiscount>0</d4p1:TotalDiscount>
<d4p1:TotalValue>0</d4p1:TotalValue>
<d4p1:WonCause i:nil="true" />

 

اشتراک:
پیمایش به بالا