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

ارتباط بین پایگاه داده سی آر ام و سایت

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

با سلام 

من در حال نوشتن بک اند سایت با نود جی اس هستم و حین کار به چندین ارور برخوردم.

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

نمونه کد من برای ثبت یوزر به شکل زیر میباشد که با این ارور مواجه شدم:

// Enter the field with the username and password that has the necessary permission to find the person.
const username = 'admin';
const password = 'admin';
// @route   Get api/users/createCustomer
// @desc    Create new customer in PayamGostar
// @access  Private
router.post (
    "/",
    //  auth,
    (req, res) => {
      User.findById(req.user._id).then((user) => {
        // Replace <url> keyword to your CRM host address.
        let url = "http://url/Services/API/IPerson.svc?wsdl";
        let requestArgs = {
          username: username,
          password: password,
          person: {
            FirstName: user.name",
            LastName: "user.family",
            CrmObjectTypeCode: "person",
            IdentityType: "حقیقی",
            Categories: { CategoryInfo: { Key: "siteclients" } },
            PhoneContacts: {
              IdentityContactPhone: {
                PhoneNumber: user.mobile",
                PhoneType: "موبایل",
                IsDefault: true,
              },
            },
            Emails: { string: [user.email] },
            Subject: "عضویت در سایت",
          },
        };
        let options = {};
        soap.createClient(url, options, async function (err, client) {
          let method = client["SavePerson"];
          console.log(client);
          await method(requestArgs, function (err, result, envelope, soapHeader) {
            if (result.SavePersonResult.Success) {
              user.CrmId = result.SavePersonResult.CrmId;
              User.findByIdAndUpdate(
                user._id,
                user,
                { upsert: true },
                function (err, doc) {
                  if (err) return res.send(500, { error: err });
                  return res.send("Succesfully saved.");
                },
              );
            }
          });
        });
      });
    },
  );
module.exports = router;
PG-Admin PG-Admin 14 تیر 1400 8:42 ق.ظ

سلام وقت بخیر

شما دسترسی به پایگاه داده ندارید
لطفا لیست وب سرویس های ما رو برسی کنید و هرکدوم که مورد نیازتون بود رو استفاده کنید
https://developer.payamgostar.com/soap-docs/

sajjadshiasi شروع کننده موضوع 14 تیر 1400 10:13 ق.ظ

سرویس ها در wcf به درستی دارن کار میکنن و مشکلی نیست بحث من درواقع این هستش که به این یوزری که ساخته شده در پایگاه داده من چطوری میتونم دسترسی داشته باشم، به عنوان مثال در مونگو من تنظیماتش رو سیو می کنم و به سرور میگم یوزر من به این شکل ساخته شده و از اینجا میتونی بخونیش. من چون دچار سردرگمی شدم میخوام بدونم که دقیقا اون قطعه کدی که گذاشتید برای نود جی اس که شخص رو سیو می کنه رو در روت اصلی اون ای پی آی آدرس خودم قرار بدم کفایت میکنه و نیاز به هیچ تغییر دیگه نیست؟

3 پاسخ
0

اگر درست متوجه مشکلتون شده باشم

شما باید این مسئله دقت داشته باشید که  شما هویت (identity)میسازید نه کاربر( user)

و هویت های ساخته شده رو فقط در داخل ui سی ار ام در بخش منوی بانک اطلاعاتی من مشاهده میکنید

 

حالا اگر بخواهید اطلاعات یک کاربری(user) رو بخونید

میتوانید از سرویس iuser.svc استفاده کنید

 

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

یعنی منظور شما این هست که اینجا به جای استفاده از user از identity استفاده کنم؟

            FirstName: user.name",
            LastName: "user.family",
            CrmObjectTypeCode: "person",
            IdentityType: "حقیقی",
            Categories: { CategoryInfo: { Key: "siteclients" } },
            PhoneContacts: {
              IdentityContactPhone: {
                PhoneNumber: user.mobile",
                PhoneType: "موبایل",
                IsDefault: true,
              },
PG-Admin PG-Admin 14 تیر 1400 4:08 ب.ظ

من احساس میکنم اصل موضوع درست به من انتقال داده نشده یا من موفق به درکش نشدم
میشه لطف کنی بفرمایی از چ سرویسی میخواهی استفاده کنی و به چ هدفی تا بتونم درست راهنماییتون کنم

به عنوان مثال بفرمایید
که من قصد دارم مشتریانی که از طریق سایت من خریداری میکنند را در سی آر ام به عنوان یک مشتری ثبت کنم
یا هر نیاز دیگری که دارید

sajjadshiasi شروع کننده موضوع 14 تیر 1400 7:50 ب.ظ
این نوشته در 3 سال قبل توسط sajjadshiasi اصلاح شد

من درواقع چهارتا تا سرویس یا api میخوام از crm بگیرم
1 - احراز هویت یعنی هویت هایی که از قبل در دیتابیس پیام گستر ساخته شدن و موجود هستن بتونن ورود کنن به صفحه پروفایلی که در سایت براشون ساخته شده.(با پسورد و نام کاربری)
2 - هویت های جدید با استفاده از فرمهایی که در سایت تعبیه میشه ساخته بشه و در پوشه مربوطه در سی آر ام نمایش داده بشه.
3 - هویتها بتونن درخواست خدمات رو با فرمهایی که مطابق فرصت خدمات داخل سی آر ام هست پر کنن و به سمت سی آر ام برای نمایش ارسال بشه.
4 - گزارشی از مراحل انجام خدمات که در سی آر ام هم موجود هست فیلدش وقتی سمت سی آر ام پر شد در صفحه کاربری هویت در سایت هم نمایش داده بشه.
سرویس ها تست شدن و در wcf test خروجی درست رو دارم و اوکی هست مشکل از این قرار هست که در nodejs برای اینکه توکنی ساخته بشه با دیتابیس و یوزر سر و کار داره که من در اینجا نمیدونم به جای یوزر با چی باید کار کنم که ارور 401 نداشته باشم.

PG-Admin PG-Admin 15 تیر 1400 9:26 ق.ظ

اوکیه اینم دقیقا همون سمپل کد node.js است که همه حالتش داره درست کار میکنه
https://github.com/1stco/PayamGostarApiSamples/blob/master/Node.js/Person/SavePerson.js

0

سمپل کد

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