SterBase
Разработка

SDK и API

Уровни API

Уровень Для чего Состояние
C ABI Сеанс, контейнер конфигурации, выполнение модуля Объявлен и реализован
C++ API Типизированные выборки и предметные команды Присутствует в SDK
Сетевой API Интеграция с внешними системами План; REST/OpenAPI не опубликованы

Продукт называется SterBase. Текущий проект SDK — SterBase77_SDK, прежнее имя — OneC77_SDK; исторический namespace sterbase77 сохранён в интерфейсах.

Сеансовая граница

uint32_t sterbase77_sterbase_abi(void);
uint32_t sterbase77_sterbase_session_abi(void);
int32_t sterbase77_sterbase_session_open_w(
    const wchar_t* database_directory,
    const wchar_t* mode, int32_t monopoly,
    wchar_t* output, uint32_t output_size);
void sterbase77_sterbase_session_close(void);

Сигнатуры показаны без экспортных макросов. В Windows заголовок задаёт __stdcall. Открытие возвращает 0 при успехе; текущая реализация возвращает 1 для неверных аргументов, 2 для отсутствующего/неоднозначного authority, 3 при проблеме выбранного источника. Выходной буфер уточняет результат.

Общий ABI — 0x00010001, сеансовый — 0x00010000 в прочитанной реализации. Проверяйте версии при подключении согласованного пакета.

Менеджер документов

sterbase77::document::DocumentManager предоставляет:

Метод Назначение
select(request) Выборка с rows, next_cursor, has_more
get(identity) Чтение полного документа по typed reference
get_header(identity) Чтение шапки
find_by_number(...), find_by_date(...) Поиск документа
save(object) Создание или запись полного агрегата
set_delete_mark(object, marked) Пометка/снятие пометки
remove(object, physical) Пометка или физическое удаление
post(object, invocation) Проведение
unpost(object) Отмена проведения
toggle_postings(object) Изменение активности бухгалтерских проводок

Для изменений конструктор принимает фабрику ObjectMutationContext. Без неё менеджер возвращает mutation-context-unavailable.

Менеджер справочников

CatalogManager предоставляет select, find_by_code, find_by_name, find_item, get, save, set_delete_mark, remove и проверку принадлежности группе belongs_to_group. Поиск использует объявленные метаданные; физические DBF-поля не являются его контрактом.

Результаты и повторы

ObjectCommandResult содержит success, committed, reconciliation_required, revision, status, error и объектный результат. Запись может состояться, даже если последующее чтение не удалось. Такой исход нельзя превращать в слепой повтор.

В примерах показаны фрагменты интеграции. Политика стабильности C++ API и полный публичный reference остаются TODO.