```csharp=
// Start a new Goods Receipt PO
SAPbobsCOM.Documents oGRPO = (SAPbobsCOM.Documents)oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oPurchaseDeliveryNotes);
// Set header properties
oGRPO.CardCode = "CardCode"; // Replace 'CardCode' with the actual CardCode
oGRPO.DocDate = DateTime.Today;
oGRPO.DocDueDate = DateTime.Today;
// Set line properties
oGRPO.Lines.ItemCode = "ItemCode"; // Replace 'ItemCode' with the actual ItemCode
oGRPO.Lines.Quantity = 1;
oGRPO.Lines.Price = 10; // Replace with actual price
// Set batch numbers
if (oGRPO.Lines.BatchNumbers.SetCurrentLine(0))
{
oGRPO.Lines.BatchNumbers.BatchNumber = "Batch001"; // Replace with actual Batch Number
oGRPO.Lines.BatchNumbers.Quantity = 1;
oGRPO.Lines.BatchNumbers.AddmisionDate = DateTime.Today;
oGRPO.Lines.BatchNumbers.Add();
}
// Add the document
int addResult = oGRPO.Add();
if (addResult == 0)
{
Console.WriteLine("Successfully created GRPO.");
}
else
{
int errorCode;
string errorDescription;
oCompany.GetLastError(out errorCode, out errorDescription);
Console.WriteLine($"Failed to create GRPO. Error {errorCode}: {errorDescription}");
}
// Clean up the COM object
System.Runtime.InteropServices.Marshal.ReleaseComObject(oGRPO);
oGRPO = null;
```