Bapi_salesorder_createfromdat1 und retoure per Java-Progr.

Rund um Java und SAP®.
3 Beiträge • Seite 1 von 1
3 Beiträge Seite 1 von 1

Bapi_salesorder_createfromdat1 und retoure per Java-Progr.

Beitrag von MASTERmind (ForumUser / 14 / 0 / 0 ) »
Hallo und guten Tag!
Ich versuche eine Retoure zu buchen per java progr. erhalte aber leider immer ein null-Objekt, wenn ich folgendes versuche:

1)Verkaufsbelegart setzen ==> auf G1F
2)Diese Fehlermeldung habe ich auch erhalten und weiss nichts damit anzufangen:
"BAPI-Fehler:Unzulässige Kombination Business Objekt BUS2032 und Vertriebsbelegtyp H".

------------------------------------------------
Code zu 1)

Code: Alles auswählen.

//imports gesetzt!!!

public class RetourDataToSAP extends AbstractRMAForm
{

  private static final Logger logger = Logger.getLogger(utility.Utility.getLoggerName(OrderExportByBAPI.class));
  private String originalSapNo;
  private String sapOrder;
  
  @Output
  @TldDescription("Generiert die Sap-Order Nummer")
  public String getSapOrderNo() throws Exception
  {
    // Init.initLog4J();

    // Verbindung nach SAP-T01 herstellen
    SAPConnection sapConnection = null;
    originalSapNo = "1500162588";

    RMASAPConnection conn = new RMASAPConnection();
    List<RMASAPArticleObject> articles = conn.resultSets(originalSapNo);

    try
    {
      sapConnection = new SAPConnection(Client.T01_100);
      RetourDataToSAP rdts = new RetourDataToSAP();
      sapOrder = rdts.createRMAOrder(sapConnection, Shop.TEST, originalSapNo, articles, null);
      System.out.println("SAP-Order=" + sapOrder);
    }
    catch (Exception e)
    {
      System.out.println(JavaLangUtil.getInfo(e));
    } finally
    {
      if (sapConnection != null)
      {
        // Sicher Verbindung trennen
        sapConnection.close();
      }
      Scheduler.safeShutdown(false);
    }
    return sapOrder;
  } 
  
  @Output
  public String getAusgabeSession()
  {
    String test = request.session.rmaContext.returnReason.getShortName();
    
    return test;    
  }
  
  public void addSapItem(BapiiteminTable sapItems, RMASAPArticleObject article)
  {
    BapiiteminTable.Row sapItem = sapItems.createRow();
    sapItem.setShort_text(article.articleDescription);
    sapItem.setMaterial(article.articleNo);
    sapItem.setTarget_qu(String.valueOf(article.quantity));
    sapItem.setReq_qty(String.valueOf(article.quantity * 1000));
    // sapItem.setItem_categ("TAN");
    // Zieleinheit
    sapItem.setTarget_qu("ST");
    // Verkaufseinheit
    sapItem.setSales_unit("ST");
    sapItem.setReason_rej("03");
    //sapItem.setReason_rej(request.session.rmaContext.returnReason.getShortName());
    //sapItem.setReason_rej(test);
    sapItems.add(sapItem);
  }
  
  public String createRMAOrder(SAPConnection sapConnection, Shop shop, String originalSapNo, List<RMASAPArticleObject> articles, Address address) throws Exception
  {
    Bapi_salesorder_createfromdat1 so = new Bapi_salesorder_createfromdat1(sapConnection);

    // Kopfdaten des Auftrags setzen
    Bapisdhead oh = new Bapisdhead();

    // Liefersperre setzen sofern notwendig
    // oh.setDlv_block("VK"); // z.b. Vorkasse

    // Verkaufsbelegart setzen
    // oh.setDoc_type(CreditNoteType.G1F.getType()); //
    // AZV=Versandauftrag;BV=Barverkauf
    oh.setDoc_type("G1F");

    // Verkaufsorganisation setzen (2000=SHOP, 5000=HWV)
    oh.setSales_org(shop.sap.getSalesOrganization());

    // Vertriebsweg
    oh.setDistr_chan("01");

    // Sparte
    oh.setDivision("01");

    // Verkaufsgruppe
    oh.setSales_grp("6");

    // Zuständige SAP-Verkaufsbüro als 4-stelliges Textkürzel
    oh.setSales_off(shop.sap.getSalesOffset(null));// 5097

    // Bestellnummer des Kunden setzen
    oh.setPurch_no("Kundenbestellnummer");

    // Bestelldatum (hier aktuelles Datum)
    oh.setPurch_date(new Date());

    // Versandbedingung setzen
    oh.setShip_cond("PV");

    // Kopfdaten in BAPI-Struktur setzen
    so.setOrder_header_in(oh);

    // Diverse Partner setzen
    BapipartnrTable partners = new BapipartnrTable();
    // Zusätzliche Adressangaben (nur hier kann man E-Mail setzen), später für
    // salesorder_change benötigt
    Bapiaddr1Table partnerAddresses = new Bapiaddr1Table();

    // Test-Debitor
    String debitor = "0000079963";

    Customer customer = Customer.fromId(99999, shop);
    Address _address = customer.getAddress();

    // Auftraggeber setzen
    OrderExportByBAPI.fillPartner(partners, AddressType.AUFTRAGGEBER.getType(), _address, debitor, partnerAddresses, customer);

    // Rechnungsempfänger setzen
    OrderExportByBAPI.fillPartner(partners, AddressType.RECHNUNGSANSCHRIFT.getType(), _address, debitor, partnerAddresses, customer);

    // Regulierer setzen (Partnerrollen stehen in Tabelle TPAR)
    OrderExportByBAPI.fillPartner(partners, AddressType.REGULIERER.getType(), _address, debitor, partnerAddresses, customer);

    // Warenempfänger setzen
    OrderExportByBAPI.fillPartner(partners, AddressType.WARENEMPFAENGER.getType(), _address, debitor, partnerAddresses, customer);

    // Wichtig: Immer alle relevanten Partner setzen, da SAP ansonsten
    // Defaultannahmen trifft!
    so.setOrder_partners(partners);

    // Auftragsliste setzen aus Warenkorb
    BapiiteminTable sapItems = new BapiiteminTable();

    for (RMASAPArticleObject article : articles)
    {
      addSapItem(sapItems, article);
    }

    so.setOrder_items_in(sapItems);

    // System.out.println("SO: " + so);

    // Ausführen
    so.execute();

    Bapireturn1 ret = so.getReturn();
    if (!ret.getNumber().equalsIgnoreCase("000"))
    {
      String soError = ret.getMessage();
      throw new Exception("BAPI-Fehler:" + soError);
    }

    // Auftragsnummer lesen
    String sdOrder = so.getSalesdocument();

    return sdOrder;
  }
  
  
  
  @Override
  protected void create() throws Exception
  {
    
    
  }

  @Override
  protected Form getFormProcessor()
  {
    if (request.arg.rma != null)
      return request.arg.rma.retourDataToSAP;
    return null;
  }
  
  public RetourDataToSAP()
  {
    super("rma.retourDataToSAP");
    setIsUploadForm(true);
  }
  
  @Override
  public int doStartTag() throws JspException
  {
    return super.doStartTag();
  }
  
  @Override
  public void postValidate(StringBuffer reflectiveParameter) throws Exception
  {
    
  }
}

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Beitrag von ewx (Top Expert / 4871 / 314 / 644 ) »
Du benötigst den BAPI_CUSTOMERRETURN_CREATE um eine Retoure anzulegen!
lg,

Beitrag von MASTERmind (ForumUser / 14 / 0 / 0 ) »
Benutze jetzt den....BAPI_CUSTOMERRETURN_CREATE....!Allerdings erhalte ich eine Fehlermeldung:

Fehler beim BAPI-Funktionsaufruf: Beleg 1500137081 hat nicht Belegtyp , sondern (1500137081, , , ).

Wobei 1500137081 der original auftrag ist

Kann mir bitte jemand sagen woran das liegt?

gruß

Seite 1 von 1

Vergleichbare Themen

0
Antw.
4359
Views
BAPI SalesOrder CreateFromDat2 - Konditionen gesperrt?
von juvi123 » 15.07.2009 12:41 • Verfasst in Java & SAP®
0
Antw.
4925
Views
BAPI SalesOrder CreateFromDat2 - ExtensionIn Parameter
von juvi123 » 15.07.2009 12:48 • Verfasst in Java & SAP®
0
Antw.
1411
Views
0
Antw.
1238
Views
Problem mit Lieferung Kunden Retoure WMS
von max1 » 06.11.2007 14:45 • Verfasst in Sales and Distribution
1
Antw.
2255
Views
Retoure per ABAP mit Referenz anlegen
von Matthias_L. » 28.06.2006 16:57 • Verfasst in Sales and Distribution

Über diesen Beitrag


Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Aktuelle Forenbeiträge

Hilfe zum FB MATERIAL_MAINTAIN_DARK
Gestern von black_adept gelöst 8 / 1775
HR-Entgeltnachweis
vor 2 Tagen von ChrisB 4 / 2319

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.

Aktuelle Forenbeiträge

Hilfe zum FB MATERIAL_MAINTAIN_DARK
Gestern von black_adept gelöst 8 / 1775
HR-Entgeltnachweis
vor 2 Tagen von ChrisB 4 / 2319

Unbeantwortete Forenbeiträge

Export von Spools in XLSX
vor 4 Tagen von abapamateur 1 / 348
Feldberechnung ME32K
vor einer Woche von ZF_SAPler 1 / 946
MS-Word als Editor
letzen Monat von tekko 1 / 4456