3.3.5. Импорт и экспорт контейнеров
|
|
Импорт или экспорт контейнеров Такском необходим в следующих случаях:
•
|
Для получения всех служебных сообщений при архивации документооборота (см. п. 3.3.4.5. Метод GetDocflowRawData).
|
•
|
Для подготовки к отправке ZIP-файла с одним или несколькими документами (см. п. 3.3.4.3. Метод Send).
|
•
|
Для согласования или иной обработки черновика документа в виде контейнера Такском.
|
•
|
Для проверки контейнера Такском.
|
Метод импорта для согласования или иной обработки черновика документа в виде контейнера Такском:
void CreateDraft(TaxcomContainer container);
| |
container
|
контейнер Такском для отправки
|
Такском-Доклайнз .NET SDK имеет два метода экземпляра класса TaxcomContainer для импорта и экспорта контейнера Такском.
Метод ImportFromZip заполняет контейнер Такском данными из ZIP-файла.
void ImportFromZip(byte[] fileContent);
| |
fileContent
|
ZIP-файл с контейнером Такском
|
Метод ExportToZip извлекает контейнер Такском из ZIP-файла:
byte[] ExportToZip();
|
Пример кода C# для извлечения текста уведомления об уточнении из контейнера Такском
// Define the docflow ID
string docflowId = "5E1701AD-F413-438C-BFC8-FBCA50F67BF6";
// Download the TTC
byte[] docflowBytes = Api.GetDocflowRawData(docflowId);
// Initialize the TTC instance
var container = new TaxcomContainer();
container.ImportFromZip(docflowBytes);
// Get the list of service messages
var serviceDocuments = container.GetServiceDocuments();
if(serviceDocuments.Any())
{
// Get the notification on correction request
var doc = serviceDocuments.FirstOrDefault(d => d.DocType == DocumentType.CorrectionNotice);
if (doc != null)
{
// Get the text of the notification
string comment = (doc as CorrectionNoticeDocument).Comment;
}
}
Пример кода C# для извлечения кода ошибки из контейнера Такском
// Define the docflow ID
string docflowId = "5E1701AD-F413-438C-BFC8-FBCA50F67BF6";
// Download the TTC
byte[] docflowBytes = Api.GetDocflowRawData(docflowId);
// Initialize the TTC instance
var container = new TaxcomContainer();
container.ImportFromZip(docflowBytes);
// Get the list of service messages
var serviceDocuments = container.GetServiceDocuments();
if(serviceDocuments.Any())
{
// Get the particular service message
var doc = serviceDocuments.FirstOrDefault(d => d.DocType == DocumentType.ErrorMessage);
if (doc != null)
{
// Get the error code
string errorCode = (doc as ErrorMessage).Code;
// Get the error text
string errorDescription = (doc as ErrorMessage).Description;
}
}