Existe BAPI_MATERIAL_AVAILABILITY, mas não acredito que retorne os mesmos resultados que o CO09. A questão é que no SAP não há uma função que faça exatamente o mesmo que cada transação faz. (Suponho que a separação de preocupações não era algo importante na década de 1970).
Não tenho certeza sobre que tipo de relatório você está escrevendo (e isso pode ser uma razão para votação negativa), mas, em minha humilde opinião, mostrar um nível de granularidade tão detalhado não faz muito sentido para exibir para todo o conjunto de materiais de uma vez. Talvez você pudesse mostrar apenas informações gerais de ATP e/ou estoque em mãos, e então fornecer funcionalidade de duplo clique com CALL TRANSACTION (e pular a primeira tela) para levar os usuários para o CO09 para uma análise mais detalhada.
Caso contrário, basicamente você estaria tentando engenharia reversa do CO09 e inserindo o mesmo código em um programa personalizado.
Tenha em mente que a verificação de ATP pode levar algum tempo, então se você tentar colocar BAPI ou FM em um loop, isso pode afetar o desempenho do seu relatório. Você realmente deveria reconsiderar esse assunto. Duvido seriamente que exatamente as mesmas informações que no CO09 sejam o que os usuários realmente desejam...