استيراد البيانات إلى Google Chat

باستخدام Google Chat API، يمكنك استيراد البيانات من المنصات الأخرى للمراسلة إلى Google Chat. يمكنك استيراد الرسائل والمرفقات والتفاعلات والاشتراكات وعناصر المساحة الحالية من منصات المراسلة الأخرى إلى موارد Chat API المقابلة. يمكنك استيراد هذه البيانات من خلال إنشاء مساحات Chat في وضع الاستيراد واستيراد البيانات إلى هذه المساحات. بعد اكتمال العملية بنجاح، تصبح هذه المساحات مساحات Chat عادية.

في ما يلي شرح لعملية الاستيراد بالكامل:

  1. التخطيط لعملية الاستيراد
  2. ضبط التفويض لتطبيق Chat
  3. إنشاء مساحة في وضع الاستيراد
  4. استيراد الموارد
  5. التحقّق من صحة الموارد المستورَدة
  6. تسوية الاختلافات في الموارد المستورَدة عن البيانات المصدر
  7. وضع الاستيراد الكامل
  8. منح الإذن بالوصول إلى المساحة بعد وضع الاستيراد
  9. تحديد المشاكل وحلّها

المتطلبات الأساسية

برمجة تطبيقات

Python

التخطيط للاستيراد

خطط وفقًا لذلك لكمية البيانات التي سيتم استيرادها، وتعرَّف على كيفية تأثير حدود الاستخدام والحصص في عملية الاستيراد، وكن على دراية بأنواع مساحات Chat المتوافقة عند الاستيراد إلى مساحة جديدة.

مراجعة حدود استخدام واجهة برمجة التطبيقات

يمكن أن يختلف الوقت اللازم لاستيراد البيانات إلى Chat بشكل كبير، ويعود ذلك إلى كمية موارد Chat المطلوب استيرادها. راجِع حدود الاستخدام في تطبيق Chat وكمية البيانات المُجدوَلة للاستيراد من منصة المراسلة المصدر لتحديد مخطط زمني مُقدَّر.

عند استيراد الرسائل إلى مساحة، ننصحك بنشر طلبات messages.create() في سلاسل محادثات مختلفة.

تحديد المساحات المتوافقة للاستيراد

لا يتيح وضع الاستيراد سوى SpaceType من SPACE وGROUP_CHAT. ‫ لا يتوافق مع DIRECT_MESSAGE. يمكنك الاطّلاع على المستندات الخاصة بـ SpaceType للحصول على مزيد من المعلومات.

إنشاء مساحة في وضع الاستيراد

لإنشاء مساحة في وضع الاستيراد، استخدِم طريقة create في مورد Space واضبط importMode على true.

عند إنشاء المساحة في وضع الاستيراد، يُرجى مراعاة ما يلي:

  • التاريخ والوقت: يُرجى تذكُّر أنّه يجب إكمال وضع الاستيراد في غضون 30 يومًا. إذا كانت المساحة لا تزال في وضع الاستيراد بعد 30 يومًا من وقت استدعاء الطريقة spaces.create()، تتم أولاً حذفها تلقائيًا، ثم يصبح من المستحيل الوصول إليها أو استردادها.
    • لا تستخدِم قيمة الحقل createTime لتتبُّع انتهاء صلاحية الإطار الزمني الذي يبلغ 30 يومًا. ولا يكون هذا الإجراء دائمًا مطابقًا لما يحدث عند استدعاء الطريقة spaces.create(). عند استخدام وضع الاستيراد، يمكن ضبط الحقل createTime على الطابع الزمني السابق الذي تم إنشاء المساحة به في المصدر بهدف الحفاظ على وقت الإنشاء الأصلي.
  • اسم مورد المساحة (name): المعرّف الفريد الذي يتم استخدامه لاسترداد معلومات عن المساحة المحدّدة، وتتم الإشارة إليه في خطوات لاحقة عند استيراد المحتوى إلى المساحة.

للحفاظ على وقت إنشاء عنصر المساحة المكافئ من منصّة المراسلة المصدر، يمكنك ضبط createTime للمساحة. يجب ضبط قيمة الحقل createTime بين 1 كانون الثاني (يناير) 2000 والوقت الحالي.

لإنشاء مساحة خارجية في وضع الاستيراد، اضبط externalUserAllowed على true. بعد اكتمال عملية الاستيراد بنجاح، يمكنك إضافة مستخدمين خارجيين.

يوضّح المثال التالي كيفية إنشاء مساحة في وضع الاستيراد:

برمجة تطبيقات

function createSpaceInImportMode() {
  const space = Chat.Spaces.create({
      spaceType: 'SPACE',
      displayName: 'DISPLAY_NAME',
      importMode: true,
      createTime: (new Date('January 1, 2000')).toJSON()
  });
  console.log(space.name);
}

Python

"""Create a space in import mode."""

import datetime

from google.oauth2 import service_account
from googleapiclient.discovery import build

# Specify required scopes.
SCOPES = [
    'https://www.googleapis.com/auth/chat.import',
]

CREDENTIALS = (
    service_account.Credentials.from_service_account_file('credentials.json')
    .with_scopes(SCOPES)
    .with_subject('EMAIL')
)

# Build a service endpoint for Chat API.
service = build('chat', 'v1', credentials=CREDENTIALS)

result = (
    service.spaces()
    .create(
        body={
            'spaceType': 'SPACE',
            'displayName': 'DISPLAY_NAME',
            'importMode': True,
            'createTime': f'{datetime.datetime(2000, 1, 1).isoformat()}Z',
        }
    )
    .execute()
)

print(result)

استبدِل ما يلي:

  • EMAIL: عنوان البريد الإلكتروني لحساب المستخدم الذي انتحلت هويته ولديك إذن بالوصول على مستوى النطاق
  • DISPLAY_NAME: اسم المساحة التي تم إنشاؤها في وضع الاستيراد ويجب أن يكون اسمًا فريدًا للمساحة التي يتم عرضها لمستخدمي Chat. ننصحك باستخدام الاسم المعروض نفسه للمساحة التي تستورِد البيانات منها.

استيراد الموارد

لاستيراد المراجع من منصات مراسلة أخرى، يمكنك إنشاء موارد Google Chat (مثل الرسائل والتفاعلات والمرفقات) في مساحة وضع الاستيراد. عند إنشاء مورد في المساحة، يمكنك تحديد البيانات من المورد المرتبط من منصة الرسائل التي يتم نقل البيانات منها.

الرسائل

يمكن لتطبيقات Chat استيراد الرسائل باستخدام سلطتها الخاصة، أو نيابةً عن مستخدم من خلال انتحال الهوية. يتم ضبط كاتب الرسالة على حساب المستخدم الذي تم انتحال هويته. لمزيد من المعلومات، يُرجى الاطّلاع على مقالة تفويض تطبيقات Chat. لاستيراد رسالة في مساحة وضع الاستيراد، استخدِم طريقة create في مورد Message. للحفاظ على وقت إنشاء الرسالة الأصلية من منصة المراسلة المصدر، يمكنك ضبط createTime للرسالة. يجب ضبط createTime هذا على قيمة تقع بين وقت إنشاء المساحة الذي تم ضبطه في السابق والوقت الحالي.

لا يمكن أن تحتوي الرسائل في المساحة نفسها على createTime نفسه، حتى إذا تم حذف الرسائل السابقة التي تحمل هذا الوقت.

لا يمكن عرض معاينات روابط في Google Chat للرسائل التي تحتوي على عناوين URL تابعة لجهات خارجية في مساحات وضع الاستيراد.

عند إنشاء الرسائل في وضع الاستيراد، لا تُرسِل المساحات إشعارات أو رسائل إلكترونية إلى أي مستخدمين، بما في ذلك الرسائل التي تحتوي على إشارات إلى مستخدمين.

يوضّح المثال التالي كيفية إنشاء رسالة في مساحة وضع الاستيراد:

Python

"""Create a message in import mode space."""

import datetime

from google.oauth2 import service_account
from googleapiclient.discovery import build

# Specify required scopes.
SCOPES = [
    'https://www.googleapis.com/auth/chat.import',
]

CREDENTIALS = (
    service_account.Credentials.from_service_account_file('credentials.json')
    .with_scopes(SCOPES)
    .with_subject('EMAIL')
)

# Build a service endpoint for Chat API.
service = build('chat', 'v1', credentials=CREDENTIALS)

NAME = 'spaces/SPACE_NAME'
result = (
    service.spaces()
    .messages()
    .create(
        parent=NAME,
        body={
            'text': 'Hello, world!',
            'createTime': f'{datetime.datetime(2000, 1, 2).isoformat()}Z',
        },
    )
    .execute()
)

print(result)

استبدِل ما يلي:

التفاعلات

يمكن لتطبيق Chat استيراد التفاعلات مع الرسائل باستخدام Chat API. للحصول على معلومات عن طرق الموارد و أنواع المصادقة المتوافقة في مساحات وضع الاستيراد، يُرجى الاطّلاع على مقالة تفويض تطبيقات Chat.

المرفقات

يمكن لتطبيق Chat تحميل المرفقات باستخدام Chat API. للحصول على معلومات عن طرق الموارد وأنواع إتاحة المصادقة في مساحات وضع الاستيراد، يُرجى الاطّلاع على تفويض التطبيقات في Chat. ومع ذلك، ننصح بشدة باستخدام Google Drive API لتحميل المرفقات كملفات Google Drive وربط عناوين URL الخاصة بالملف بالرسائل المعنيّة في مساحات وضع الاستيراد لاستيراد المرفقات من منصات مراسلة أخرى لتجنّب تجاوز الحدّ الداخلي المسموح به في Google Chat لتحميل المرفقات.

العضويات السابقة

الاشتراكات السابقة هي اشتراكات تم إنشاؤها للمستخدمين الذين غادروا الوحدة الأصلية للمساحة من منصة المراسلة المصدر، ولكنّهم يريدون الاحتفاظ ببياناتهم في Chat. للحصول على معلومات حول إضافة أعضاء جدد بعد انتهاء المساحة في وضع الاستيراد، يُرجى الاطّلاع على إنشاء مورد عضوية.

في العديد من الحالات، عندما يخضع هؤلاء الأعضاء السابقون لسياسة الاحتفاظ بالبيانات في Google، قد تحتاج إلى الاحتفاظ بالبيانات (مثل الرسائل والردود) التي تم إنشاؤها من خلال الاشتراكات السابقة في مساحة قبل استيرادها إلى Chat. عندما تكون المساحة في وضع الاستيراد، يمكنك استيراد الاشتراكات السابقة إلى المساحة باستخدام طريقة create على مورد Membership. للحفاظ على وقت إجازة الاشتراك السابق، عليك ضبط deleteTime الخاصة بالاشتراك. يجب أن يكون وقت الإجازة دقيقًا لأنه يؤثر في البيانات المطلوب الاحتفاظ بها لهذه العضويات. بالإضافة إلى ذلك، يجب أن يكون هذا deleteTime بعد الطابع الزمني لإنشاء المساحة وألّا يكون طابعًا زمنيًا مستقبليًا.

بالإضافة إلى deleteTime، يمكنك أيضًا ضبط createTime للحفاظ على وقت الانضمام الأصلي للاشتراك السابق. على عكس deleteTime، يكون createTime اختياريًا. في حال عدم ضبط القيمة، يتم احتساب createTime تلقائيًا من خلال طرح 1 ميكرو ثانية من deleteTime. في حال ضبطه، يجب أن يكون createTime قبل deleteTime ويجب أن يكون في وقت إنشاء المساحة أو بعده. لا يتم استخدام هذه createTime المعلومات لتحديد مدة الاحتفاظ بالبيانات ولا تظهر في أدوات المشرفين، مثل "وحدة تحكُّم المشرف في Google" وGoogle Vault.

على الرغم من أنّه قد تكون هناك طرق متعدّدة يمكن للمستخدم من خلالها الانضمام إلى مساحة ومغادرتها في منصّة المراسلة المصدر (من خلال الدعوات أو الانضمام بأنفسهم أو الإضافة من قِبل مستخدم آخر)، يتم تمثيل كل هذه الإجراءات في Chat من خلال الحقلَينcreateTime وdeleteTime للاشتراك السابق على أنّهما تمت إضافتهما أو إزالتهما.

يوضح المثال التالي كيفية إنشاء عضوية سابقة في مساحة وضع الاستيراد:

Python

"""Create a historical membership in import mode space."""

import datetime

from google.oauth2 import service_account
from googleapiclient.discovery import build

# Specify required scopes.
SCOPES = [
    'https://www.googleapis.com/auth/chat.import',
]

CREDENTIALS = (
    service_account.Credentials.from_service_account_file('credentials.json')
    .with_scopes(SCOPES)
    .with_subject('EMAIL')
)

# Build a service endpoint for Chat API.
service = build('chat', 'v1', credentials=CREDENTIALS)

NAME = 'spaces/SPACE_NAME'
USER = 'users/USER_ID'
result = (
    service.spaces()
    .members()
    .create(
        parent=NAME,
        body={
            'createTime': f'{datetime.datetime(2000, 1, 3).isoformat()}Z',
            'deleteTime': f'{datetime.datetime(2000, 1, 4).isoformat()}Z',
            'member': {'name': USER, 'type': 'HUMAN'},
        },
    )
    .execute()
)

print(result)

استبدِل ما يلي:

استيراد الموارد في مساحة خارجية

لا يمكنك إنشاء مساحة خارجية إلا باستخدام وضع الاستيراد وبيانات الاعتماد التي تخصّ مستخدمين داخل مؤسستك على Workspace. لا ينطبق ذلك إلا عندما تكون المساحة في وضع الاستيراد. بعد أن تتم عملية إكمال وضع الاستيراد في المساحة، يمكن دعوة مستخدمين خارجيين للانضمام إلى المساحات التي تم استيرادها (راجِع قسم الوصول)، ويمكن استخدام بيانات اعتمادهم للاتصال بواجهة برمجة تطبيقات Chat.

التحقّق من صحة الموارد المستورَدة

يمكن لتطبيق Chat قراءة محتوى مساحة وضع الاستيراد والتحقّق منه من خلال استدعاء list method في Message resource. يمكنك الاطّلاع على موارد Reaction وAttachment من أي حقلَي emojiReactionSummaries وattachment ضمن أي رسالة تم إرجاعها. ولا يمكن لتطبيقات Chat استدعاء هذه الطريقة إلا نيابةً عن المستخدم من خلال انتحال الهوية. لمزيد من المعلومات، يُرجى الاطّلاع على مقالة تفويض تطبيقات Chat.

يمكن لتطبيق Chat أيضًا قراءة الرسائل الفردية للتحقّق من صحتها من خلال استدعاء get method في Message resource. لا يمكن لتطبيقات المحادثات استدعاء هذه الطريقة لقراءة رسائلها الخاصة إلا باستخدام تفويضها الخاص. لمزيد من المعلومات، يُرجى الاطّلاع على مقالة تفويض تطبيقات Chat.

يمكن لتطبيقات المحادثة أيضًا إدراج العضويات السابقة من خلال استدعاء list في Membership. بعد خروج المساحة من وضع الاستيراد، لن تعرض طريقة list الاشتراكات السابقة. لا يمكن لتطبيقات Chat استدعاء هذه الطريقة إلا بالنيابة عن مستخدم من خلال انتحال الهوية. لمزيد من المعلومات، يُرجى الاطّلاع على مقالة تفويض تطبيقات Chat.

يمكنك قراءة سمات مساحة وضع الاستيراد من خلال استدعاء طريقةget في موردSpace. لا يمكن لتطبيقات المحادثة استدعاء هذه الطريقة إلا باستخدام سلطتها الخاصة. لمزيد من المعلومات، يُرجى الاطّلاع على مقالة تفويض تطبيقات Chat.

توفُّر بيانات المصدر التي تتطابق مع بيانات المرجع المستورَد

إذا لم يعُد أيّ مورد مستورَد مطابقًا للكيان الأصلي من منصّة المراسلة المصدر بسبب تغييرات في الكيان الأصلي أثناء الاستيراد، يمكن لتطبيقات Chat الاتصال بواجهة برمجة تطبيقات Chat لتعديل موارد المراسلة المستورَدة. على سبيل المثال، إذا عدّل مستخدم رسالة في منصة المراسلة المصدر بعد إنشاء هذه الرسالة في Chat، يمكن لتطبيقات Chat تعديل الرسالة المستورَدة لتعكس المحتوى الحالي للرسالة الأصلية.

الرسائل

لتعديل الحقول المتوافقة في رسالة في مساحة وضع الاستيراد، استخدِم update في Message resource. لا يمكن لتطبيقات المحادثات استدعاء هذه الطريقة إلا باستخدام الإذن نفسه الذي تم استخدامه أثناء إنشاء الرسالة الأولية. إذا استخدمت انتحال هوية المستخدم أثناء إنشاء الرسالة الأولى، يجب استخدام المستخدم نفسه الذي تم انتحال هويته لتعديل الرسالة.

لحذف رسالة في مساحة وضع الاستيراد، استخدِم طريقة delete في مورد Message. لا يحتاج صانع الرسالة الأصلي إلى حذف الرسائل في مساحة وضع الاستيراد، ويمكن حذفها من خلال انتحال هوية أي مستخدم في النطاق. لا يمكن لتطبيقات Chat حذف رسائلها إلا إذا كان ذلك باستخدام صفتها الخاصة. لمزيد من المعلومات، يُرجى الاطّلاع على مقالة تفويض تطبيقات Chat.

التفاعلات

لحذف تفاعل على رسالة في مساحة وضع الاستيراد، استخدِم طريقة delete في المورد reactions. للحصول على معلومات عن طرق الموارد و أنواع المصادقة المتوافقة في مساحات وضع الاستيراد، يُرجى الاطّلاع على مقالة تفويض تطبيقات Chat.

المرفقات

لتعديل مرفقات رسالة في مساحة وضع الاستيراد، استخدِم upload method في مورد media . للحصول على معلومات عن طرق الموارد وأنواع مصادقة الدعم في مساحات وضع الاستيراد، يُرجى الاطّلاع على مقالة تفويض تطبيقات Chat.

العضويات السابقة

لحذف اشتراك سابق في مساحة وضع الاستيراد، استخدِم الطريقة delete في مورد Membership. بعد خروج مساحة من وضع الاستيراد، لن تسمح لك طريقة delete بحذف الاشتراكات السابقة بعد الآن.

لا يمكنك تعديل اشتراك سابق في مساحة وضع الاستيراد. إذا أردت تعديل اشتراك سابق تم استيراده بشكل غير صحيح، عليك أولاً حذفه ثم إعادة إنشائه عندما تكون المساحة لا تزال في وضع الاستيراد.

المساحات

لتعديل الحقول المتوافقة في مساحة وضع الاستيراد، استخدِم طريقة patch في المورد spaces.

لحذف مساحة وضع الاستيراد، استخدِم طريقة delete على مورد spaces.

للحصول على معلومات عن طرق الموارد وأنواع إتاحة المصادقة في مساحات وضع الاستيراد، يُرجى الاطّلاع على تفويض التطبيقات في Chat.

إكمال وضع الاستيراد

قبل استدعاء الطريقة completeImport ، يجب التأكّد من اكتمال التحقّق و مطابقة الاختلافات في الموارد . إنّ الخروج من وضع الاستيراد في المساحة هو عملية لا يمكن التراجع عنها، ويؤدي إلى تحويل مساحة وضع الاستيراد إلى مساحة عادية. ما مِن مؤشر في Chat ينسب هذه المساحات إلى عملية استيراد بيانات.

دوِّن تاريخ ووقت الاتصال بـ completeImport، واسم المرجع للمستخدم الذي أجرى المكالمة، والردّ الذي تم إرجاعه. يمكن أن يكون ذلك مفيدًا إذا واجهت أي مشاكل وكنت بحاجة إلى التحقيق فيها.

لإكمال وضع الاستيراد وإتاحة المساحة للمستخدمين، يمكن لتطبيق Chat استدعاء طريقة completeImport في مورد Space. لا يمكن لتطبيقات Chat استدعاء هذه الطريقة إلا نيابةً عن مستخدم من خلال انتحال الهوية. لمزيد من المعلومات، يُرجى الاطّلاع على تفويض التطبيقات في Chat. تتم إضافة المستخدم الذي تم انتحال هويته إلى المساحة بصفتها مدير مساحة بعد اكتمال هذه الطريقة. يجب استدعاء هذه الطريقة في غضون 30 يومًا من استدعاء طريقة create.space الأولي. إذا حاولت استدعاء هذه الطريقة بعد انقضاء مدّة 30 يومًا، سيؤدي ذلك إلى حدوث أخطاء لأنّه يتم حذف مساحة وضع الاستيراد ولن يعود بإمكان تطبيق Chat الوصول إليها.

من غير الضروري أن يكون المستخدم الذي ينتحل هويته بطريقة completeImport هو منشئ المساحة.

يوضّح المثال التالي كيفية إكمال وضع الاستيراد:

Python

"""Complete import."""

from google.oauth2 import service_account
from googleapiclient.discovery import build

# Specify required scopes.
SCOPES = [
    'https://www.googleapis.com/auth/chat.import',
]

CREDENTIALS = (
    service_account.Credentials.from_service_account_file('credentials.json')
    .with_scopes(SCOPES)
    .with_subject('EMAIL')
)

# Build a service endpoint for Chat API.
service = build('chat', 'v1', credentials=CREDENTIALS)

NAME = 'spaces/SPACE_NAME'
result = service.spaces().completeImport(name=NAME).execute()

print(result)

استبدِل ما يلي:

منح إذن الوصول إلى المساحة بعد وضع الاستيراد

لمنح مستخدمي Chat إذن الوصول إلى المساحة التي تم استيرادها مؤخرًا، يمكن لتطبيقات Chat مواصلة استخدام نطاق chat.import وانتحال هوية المستخدِم خلال 30 يومًا من طلب الطريقة create.space() الأولي لتنفيذ ما يلي:

  • إضافة أعضاء إلى المساحة: استخدِم طريقة create() في المورد Membership. ننصحك بأن تنشئ تطبيقات Chat موارد Membership مباشرةً بعد اكتمال عملية استيراد المساحة، حتى تتمكّن تطبيقات Chat من مواصلة استخدام نطاق chat.import، وضمان وصول جميع الأعضاء المستورَدين إلى المساحة.
  • ضبط جمهور مستهدف: استخدِم update() على المورد Space. للتعرّف على كيفية إنشاء الجماهير المستهدفة وإضافتها، يُرجى الاطّلاع على إتاحة مساحة Google Chat للمستخدمين المحدّدين في مؤسسة Google Workspace.

لاستخدام هذه الطرق مع نطاق chat.import، يجب أن يكون المستخدِم الذي يتم انتحال هويته مدير مساحة.

بالنسبة إلى المساحات الخارجية، تتيح طريقة الاشتراك create() أيضًا دعوة مستخدمين خارج مؤسستك على Workspace. تأكَّد من فهمك لجميع القيود المعروفة التي تخصّ المستخدمين الخارجيين.

تحديد المشاكل وحلّها

إذا واجهت مشكلة عند استيراد مساحات Chat، راجِع المشاكل التالية للحصول على المساعدة. إذا واجهت ردًا يشير إلى خطأ، يُرجى تدوينه (نسخ/لصق النص في مستند أو حفظ لقطة شاشة) للرجوع إليه في المستقبل وتحديد المشاكل وحلّها.

عند استيراد مساحة بنجاح، يتم إكمال CompleteImportSpace بالحالة OK.

عدم إكمال عملية الاستيراد قبل انتهاء مهلة 30 يومًا

كما هو موضّح سابقًا في مقالة إنشاء مساحة في وضع الاستيراد، إذا كانت المساحة لا تزال في وضع الاستيراد بعد 30 يومًا من وقت استدعاء أسلوب الإنشاء، سيتم حذفها تلقائيًا ولن يكون من الممكن الوصول إليها أو استردادها.

لم تعُد المساحة المحذوفة متاحة أو قابلة للاسترداد، ويجب بدء عملية المعالجة مجددًا.

العثور على المساحات غير الظاهرة

إذا لم تتمكّن من العثور على مساحة Chat الجديدة، راجِع الجدول التالي للاطّلاع على الردّ الذي تلقّيته من CompleteImportSpace لمعرفة التفسير وكيفية حلّ المشكلة.

تم تلقّي الردّ خطوات التحقيق الشرح الدقة
يُعرِض CompleteImportSpace استثناءً، ويؤدي استدعاء GetSpace إلى عرض PERMISSION_DENIED. راجِع سجلّاتك لمعرفة وقت إنشاء المساحة وما إذا مرَّ عليها أكثر من 30 يومًا، فقد تم حذفها تلقائيًا. بالإضافة إلى ذلك، لا يتوفّر سجلّ للمساحة المستورَدة في أداة إدارة المساحة أو سجلّ التدقيق. مرّ أكثر من 30 يومًا على بدء عملية الاستيراد وتعذّر على المساحة الخروج من عملية نقل البيانات بنجاح. أنشئ مساحة جديدة وشغِّل عملية الاستيراد مرة أخرى.
يُرجع "CompleteImportSpace" مبلغ OK ويعيد الاتصال بـ "GetSpace" PERMISSION_DENIED. لا يتوفّر سجلّ للمساحة التي تم استيرادها في أداة إدارة المساحة، ولكن يظهر أنّه تم حذف المساحة في سجلّ التدقيق. تم استيراد المساحة بنجاح، ولكن تم حذفها لاحقًا. أنشئ مساحة جديدة وشغِّل عملية الاستيراد مرة أخرى.