GOS - Anlagen

Getting started ... Alles für einen gelungenen Start.
20 Beiträge • Seite 1 von 2 (current) Nächste
20 Beiträge Seite 1 von 2 (current) Nächste

GOS - Anlagen

Beitrag von MaximJD (ForumUser / 9 / 0 / 0 ) »
Hallo,
seit Tagen versuche ich mich daran in einem GOS-Objekt im Menü des Toolbars den Button "Anlage anlegen" zu deaktivieren oder auszublenden ohne Erfolg.
Hat jemand eine Idee wie ich Einfluss auf die Toolbar nehmen kann?
Ich benutze die Klasse cl_gos_manager.
Vielen Dank im voraus.
Maxim

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


Re: GOS - Anlagen

Beitrag von Tron (Top Expert / 1327 / 35 / 331 ) »
Moin Maxim.

Die Tabelle lt_service soll nicht gewünschte Funktionen ausschliessen.
Eigene Anlagen und Notizen kann man über ls_object definieren.
Beispiel:

Code: Alles auswählen.

*---------------------------------------------------------------------*
* Report  ZTEST_MIT_GOS2                                              *
*                                                                     *
*---------------------------------------------------------------------*
*                                                                     *
*                                                                     *
*---------------------------------------------------------------------*

REPORT  ztest_mit_gos2.

* SRGBTBREL Verknüpfungen im GOS Umfeld
* SGOSATTR SGOS: Attribute der generischen Dienste

DATA: go_myobject TYPE REF TO cl_gos_manager,
ls_object TYPE borident,
ls_service TYPE sgos_sels,
lt_service TYPE TABLE OF sgos_sels.

START-OF-SELECTION.
  PARAMETERS: P_EBELN TYPE ebeln OBLIGATORY.

  exit.

AT SELECTION-SCREEN OUTPUT.
  CHECK NOT P_EBELN IS INITIAL.
  SELECT SINGLE COUNT(*) FROM ekko WHERE ebeln = P_EBELN.
  CHECK sy-subrc = 0.

  LOOP AT SCREEN.
    CHECK screen-name = 'P_EBELN'.
    screen-input = '0'.
    MODIFY SCREEN.
  ENDLOOP.

  IF go_myobject IS INITIAL.
* Schlüssel für generisches Objekt (hier der Einkaufbeleg)
* MUSS eindeutig sein!!!
    ls_object-objkey = P_EBELN.

* Objekttype: ermittelbar über die TA SWO1
*   ls_object-objtype = 'BUS2012'. "EINKAUF

* MEIN NEUER OBJECT-TYP !!!!! siehe Tabelle SRGBTBREL !!!!!
    ls_object-objtype = 'ZTEST'.

* Ausblenden verschiedener Standardservices
* zu finden in der Tabelle SGOSATTR

    SELECT name FROM sgosattr INTO ls_service-low WHERE
    name NE 'VIEW_ATTA' AND
    name NE 'NOTE_CREA' AND
    name NE 'PCATTA_CREA'.
      ls_service-sign = 'E'.
      ls_service-option = 'EQ'.
*     ls_service-low = sgosattr-name.
      APPEND ls_service TO lt_service.
    ENDSELECT.

* Aufruf des generischen Objekts
* !!!ip_no_commit speichert automatisch angelegt Objekte!!!
    CREATE OBJECT go_myobject
    EXPORTING
    is_object = ls_object
    ip_no_commit = ' '
    it_service_selection = lt_service
    EXCEPTIONS
    OTHERS = 1.
***********
  ENDIF.
in diesem Beispiel werden nur Notizen,Anlagen und Anlagenliste verwendet.
Wenn man mit BUS2012 arbeitet, kann man mit Anlagen der ME22N vergleichen.
Das hier "eigene" Objekt besteht aus dem Einkaufsbeleg (der existieren muss) und "ZTEST", einer willkürlich gewählten Konstanten.
Das erfolgreiche Ablegen kann in der Tabelle SRGBTBREL kontrolliert werden.

lg Jens
<:: XING-Gruppe Tricktresor::>
Die deutsche Rechtschreibung ist Freeware, du darfst sie kostenlos nutzen –
Aber sie ist nicht Open Source, d. h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen.

Re: GOS - Anlagen

Beitrag von Thomas R. (Expert / 754 / 73 / 34 ) »
Hallo Maxim,
mit dem BAdI
GOS_SRV_SELECT
kannst Du die Möglichkeiten einschränken....
MfG
Thomas R.

Re: GOS - Anlagen

Beitrag von MaximJD (ForumUser / 9 / 0 / 0 ) »
Vielen vielen Dank für die Antworten.
Das mit Einschränkung der Services beim Erzeugen des Objekts ist eine gute Idee aber in meinem Fall hilft es leider nicht weiter es sei den es gibt eine Möglichkeit zur Laufzeit bestimmte Services ein-/auszuschalten.
Das eigentliche Zeil das ich anstreben möchte besteht darin, die Anlage nur einmal hinzufügen zu dürfen sprich, hat man eine Anlage eingefügt wird der Button bzw. der Service deaktiviert bzw. erst beim Löschen der einzigen Anlage wird es wieder aktiviert. Hätte von Anfang an das Problem besser beschreiben sollen :-)

Re: GOS - Anlagen

Beitrag von Tron (Top Expert / 1327 / 35 / 331 ) »
Moin.
Die einfachste Methode besteht sicherlich darin das GOS-Objekt wieder zu zerstören (nach Deinen Bedingungen ) und neu aufzubauen.
Wenn Dir das nicht gelingen sollte, wird´s ernst :
http://scn.sap.com/docs/DOC-32708
http://www.sap-press.de/3314?GPP=sapport

lg Jens
<:: XING-Gruppe Tricktresor::>
Die deutsche Rechtschreibung ist Freeware, du darfst sie kostenlos nutzen –
Aber sie ist nicht Open Source, d. h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen.

Re: GOS - Anlagen

Beitrag von Thomas R. (Expert / 754 / 73 / 34 ) »
Hallo Maxim,
Du kannst doch in dem BAdI - abhängig ob eine Anlage vorhanden ist oder nicht - das Anlegen zulassen oder nicht....

MfG
Thomas R.

Re: GOS - Anlagen

Beitrag von Tron (Top Expert / 1327 / 35 / 331 ) »
... die Anlagen zu einem Objekt stehen übrigens in der Tabelle SRGBTBREL.
lg Jens
<:: XING-Gruppe Tricktresor::>
Die deutsche Rechtschreibung ist Freeware, du darfst sie kostenlos nutzen –
Aber sie ist nicht Open Source, d. h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen.

Re: GOS - Anlagen

Beitrag von MaximJD (ForumUser / 9 / 0 / 0 ) »
Thomas R. hat geschrieben:Hallo Maxim,
Du kannst doch in dem BAdI - abhängig ob eine Anlage vorhanden ist oder nicht - das Anlegen zulassen oder nicht....
MfG
Thomas R.
Danke dies funktionniert. Aber wie kann ich die Methode aus BAdl zur Laufzeit aufrufen z.B. beim Löschen einer Anlage? Die Methode SELECT_SERVICES wird nur beim Erzeugen des Objekts angesteuert.

Re: GOS - Anlagen

Beitrag von MaximJD (ForumUser / 9 / 0 / 0 ) »
Tron hat geschrieben:Moin.
Die einfachste Methode besteht sicherlich darin das GOS-Objekt wieder zu zerstören (nach Deinen Bedingungen ) und neu aufzubauen.
lg Jens
Wie kann ich aber ein 'GO' für die Zerstörung bekommen? Sprich wie kann ich in meinem ABAP-Programm feststellen ob ein Button in der GOS-Toolleiste gedrückt wurde? Soweit ich weiß gift es für das Toolbar keine Events.

Re: GOS - Anlagen

Beitrag von Tron (Top Expert / 1327 / 35 / 331 ) »
Moin.
MaximJD hat geschrieben: Wie kann ich aber ein 'GO' für die Zerstörung bekommen? Sprich wie kann ich in meinem ABAP-Programm feststellen ob ein Button in der GOS-Toolleiste gedrückt wurde? Soweit ich weiß gift es für das Toolbar keine Events.
gemeint ist: je nachdem, ob eine Anlage existiert,den Menüpunkt ANLAGEN ein-,oder auszublenden. Das bedeutet, das niemand ein Dokument ablegen kann, wenn schon eines existiert. (allerdings auch nicht mal mehr anschauen)
Jeder tiefgreifendere Wunsch, würde eine Kopie der Klasse(n) für die Anlagen nach sich ziehen. Inklusive der Anpassung der Menüstruktur in der Tabelle SGOSATTR (über die Tabellenpflege).
siehe:
http://help.sap.com/printdocu/core/Prin ... UCTURE.pdf

lg Jens
(ich weiß, das ist wieder mal "voll gemein")
<:: XING-Gruppe Tricktresor::>
Die deutsche Rechtschreibung ist Freeware, du darfst sie kostenlos nutzen –
Aber sie ist nicht Open Source, d. h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen.

Re: GOS - Anlagen

Beitrag von MaximJD (ForumUser / 9 / 0 / 0 ) »
Tron hat geschrieben:...Das bedeutet, das niemand ein Dokument ablegen kann, wenn schon eines existiert. (allerdings auch nicht mal mehr anschauen)...
Genau das ist auch das Problem bei der dieser Lösung. Die Anlage soll schon in der Liste angezeigt werden, jedoch der Dienst für Neuanlage soll deaktiviert bleiben und zwar solange diese Anlage in der Liste existiert.
Optimal wäre wenn man Events für die Buttons der Toolbar hätte.
Gruß
Arthur

Re: GOS - Anlagen

Beitrag von Thomas R. (Expert / 754 / 73 / 34 ) »
Hallo Maxim,
mein Vorschlag ist nicht die 100% Komfortlösung aber die 95%-Arbeitslösung.
Ist eine Anlage vorhanden deaktivierst Du die Anlegenfunktionalitäten. Andernfalls bleibt alles offen.
Wird nun die Anlage gelöscht muss man einmal aus der Transaktion raus und wieder rein um eine neue Anlage anzuhängen.
Ansonsten kann man versuchen nach dem erfolgreichen Löschen die GOS neu anzutriggern. (War bei uns noch nicht notwendig).

MfG
Thomas R.

Re: GOS - Anlagen

Beitrag von MaximJD (ForumUser / 9 / 0 / 0 ) »
Thomas R. hat geschrieben:Wird nun die Anlage gelöscht muss man einmal aus der Transaktion raus und wieder rein...
Thomas R.
Also in meinem Fall müsste man Dynpro wo sich das GOS-Objekt befindet schliessen und nochmal öffnen.
Ne diese Lösung kommt garnicht in Frage. Aber vielen Dank für den Vorschlag.

Re: GOS - Anlagen

Beitrag von jensschladitz (Specialist / 417 / 0 / 56 ) »
Sali,

schau mal da - vielleicht hilft das ja weiter bzw. ist es das was du suchst

http://zevolving.com/category/generic-o ... vices-gos/

Gruss
thanks Jens

Re: GOS - Anlagen

Beitrag von Dele (Specialist / 307 / 4 / 47 ) »
Vielleicht hilft dir ja das Event GOS_MENU_SELECTED der Klasse CL_GOS_VIEW_MANAGER.
Dieses Event wird ausgelöst, sobald man in der GOS-Toolbar eine Funktion ausführt.
In deiner Behandlermethode kannst du dann abhängig von ausgewähltem Funktionscode und ob eine Anlage bereits existiert, entsprechend reagieren.

Vergleichbare Themen

2
Antw.
1993
Views
Extrahieren von Anlagen
von Bumbel » 18.04.2011 14:31 • Verfasst in ABAP Objects®
1
Antw.
6622
Views
Mitbuchkonten für Anlagen
von supermario73 » 19.12.2006 11:47 • Verfasst in Financials
4
Antw.
3378
Views
Versenden von Objekten/Anlagen
von Tommad » 15.04.2004 09:11 • Verfasst in SAP - Allgemeines
0
Antw.
1022
Views
Webservice anlagen und konsumieren
von stony007_de » 10.02.2018 16:11 • Verfasst in ABAP® für Anfänger
0
Antw.
2163
Views

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.