Я не создавал документы ДВС, только изменял. Но вроде тут есть все функциональности.
Посмотрите пакет FMEF. Класс CL_FM_EF_FACTORY.
Там немного замороченная работа с этими классами. Не уверен что все тут гладко, но как направление, думаю подойдет.
Code:
  DATA: lo_factory     TYPE REF TO cl_fm_ef_factory
      , lo_document    TYPE REF TO cl_fm_ef_document
      , lo_item        TYPE REF TO cl_fm_ef_position
      .
    cl_fm_ef_factory=>init( ).
    lo_factory = cl_fm_ef_factory=>get( ).
    lo_factory->create_from_data( <там во входной структуре материалы есть>
    importing  r_doc = lo_document ).
    ну и далее, как с объектной моделью
    lo_document-create_position(...
 
    и в конце
    lo_factory->check_all( ).    "Проверка документов
    lo_factory->draw_numbers( ). "Присвоение номеров
    lo_factory->update_all( ).   "Обновление
    COMMIT WORK AND WAIT.