> For the complete documentation index, see [llms.txt](https://docs.genrpa.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.genrpa.com/aktiviteler/sap-automation/sap-gui-grid-view-operation.md).

# Sap Gui Grid View Operation

Bu aktivite, SAP GUI arayüzünde bir Grid View bileşeni üzerinde çeşitli işlemleri gerçekleştirmek için kullanılır.&#x20;

&#x20;**Özellikler**

* **Display Name:**&#x41;ktivitenin süreç içinde ayırt edilmesi için verilen isimdir. Varsayılan olarak "Sap Guı Grid View Operation" olarak ayarlanır.&#x20;
* **Description :** Aktivitenin işlevini açıklayan isteğe bağlı bir not alanıdır. Sürecin bakımını kolaylaştırmak için kullanılır.&#x20;
* **Delay Before :** Aktivite başlamadan önce geçen bekleme süresini (saniye cinsinden) belirtir.&#x20;
  * **Varsayılan Değer:** 0 (Bekleme olmadan çalışır).&#x20;
  * **Örnek Kullanım:** Aktivitenin çalıştırılmasından önce belirli bir süre beklemek gerekiyorsa, bu süre burada belirtilir. Örneğin, 2 yazılırsa aktivite başlamadan önce 2 saniye bekler.
* **Delay After:** Aktivite tamamlandıktan sonra geçen bekleme süresini (saniye cinsinden) belirtir.&#x20;
  * **Varsayılan Değer:** 0 (Bekleme olmadan bir sonraki aktiviteye geçer).&#x20;
  * **Örnek Kullanım:** İşlem tamamlandıktan sonra sistemde gecikmeler yaşanıyorsa ya da sonraki adımın başlaması için bir süre verilmesi gerekiyorsa, bu alanda belirtilir.
* **Continue On Error:** Aktivite sırasında bir hata oluştuğunda sürecin devam edip etmeyeceğini kontrol eden özelliktir.&#x20;
  * **True:** Aktivite hata aldığında bile süreç çalışmaya devam eder.&#x20;
  * **False:** Aktivite hata alırsa süreç durur.&#x20;
  * **Varsayılan Değer:** False (Varsayılan olarak süreç hata alırsa durur).&#x20;
  * **Örnek Kullanım:** Kritik olmayan işlemlerde hata olsa bile sürecin devam etmesi isteniyorsa bu seçenek True olarak ayarlanır. Örneğin, bir dosyanın varlığını kontrol eden bir aktivitede hata alınırsa ve süreç bu hataya rağmen devam etmeliyse bu seçenek aktif edilir.&#x20;

<figure><img src="https://25824184-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVjKcqj5ygh8bCRgScOVh%2Fuploads%2FGkgUeFgNZMapxNcCdWXF%2Fimage.png?alt=media&amp;token=6ed83b0c-b62d-4437-b246-c9455c963822" alt=""><figcaption></figcaption></figure>

**Inputs**&#x20;

* **Sap By Type**&#x20;
  * **Veri Tipi:** Text&#x20;
  * **Açıklama:** SAP Grid View bileşeninin belirlenme yöntemini belirtir. Aşağıdaki değerlerden biri seçilmelidir:&#x20;
    * **Name:** Grid View bileşenini adıyla bulur.&#x20;
    * **Id:** Grid View bileşenini benzersiz kimliğiyle bulur.&#x20;
    * **NameEx:** Genişletilmiş ad ile Grid View bileşenini bulur.&#x20;
* **Name**&#x20;
  * **Veri Tipi:** Text&#x20;
  * **Açıklama:** İşlem yapılacak SAP Grid View bileşeninin adını belirtir (Sap By Type = Name veya NameEx seçildiğinde kullanılır).&#x20;
* **Type**&#x20;
  * **Veri Tipi:** Text&#x20;
  * **Açıklama:** SAP Grid View bileşeninin türünü belirtir (örn. "GuiGridView").&#x20;
* **Id**&#x20;
  * **Veri Tipi:** Text&#x20;
  * **Açıklama:** SAP Grid View bileşeninin benzersiz kimliğini belirtir (Sap By Type = Id seçildiğinde kullanılır).&#x20;
* **Sap Gui Grid Op Method**&#x20;
  * **Veri Tipi:** Text&#x20;
  * **Açıklama:** Gerçekleştirilecek işlemi belirtir. Aşağıdaki değerlerden biri seçilmelidir:&#x20;
    * **ClearSelection:** Seçili hücreleri temizler.&#x20;
    * **Click:** Belirtilen hücreye tek tıklar. Özellikle mavi renkli, altı çizili linklere (Hotspot) tıklamak için kullanılır.&#x20;
    * **ClickCurrentCell:** Geçerli hücreyi tıklar.&#x20;
    * **ClickWithCellValue:** Belirtilen sütundaki tüm hücreleri baştan aşağı tarar; içeriği sizin aradığınız değere eşleştiği an o satırı seçer (SelectedRows) ve odağı o hücreye taşır.
    * **ContextMenu:** : SAP Grid üzerinde sağ tıklama (Context Menu) işlemini tetikler. Bu metot menüyü görsel olarak ekrana çizmez, işlemleri hızlandırmak için hafızada sanal olarak açar.
    * **CurrentCellMoved:** Geçerli hücreyi taşır.&#x20;
    * **SelectedRows:**&#x42;elirtilen satır veya satırları tabloda seçili hale getirir (Sol taraftaki satır seçme kutucuklarını işaretler). Mevcut seçili satırları okumaz, satır seçimi yapar.
    * **DeleteRows:** Seçili satırları siler.&#x20;
    * **DeselectColumn:** Belirtilen sütunun seçim işaretini kaldırır.&#x20;
    * **DoubleClick:** Belirtilen satır ve sütunun kesiştiği hücreye çift tıklar. Hücrenin içine girmek veya bir detayı açmak için kullanılır.
    * **DoubleClickCurrentCell:** Geçerli hücreye çift tıklar.&#x20;
    * **DuplicateRows:** Seçili satırları çoğaltır.&#x20;
    * **GetCellCheckBoxChecked:** Belirtilen hücredeki checkbox’ın işaretli olup olmadığını kontrol eder.&#x20;
    * **InsertRows:** Belirtilen satır numarasına yeni satır ekler.&#x20;
    * **MoveRows:** Seçili satırları taşır.&#x20;
    * **PressButton:** Tablonun üstündeki araç çubuğunda (Toolbar) yer alan düğmelere DEĞİL, doğrudan bir hücrenin içine yerleştirilmiş olan gerçek bir butona (Pushbutton) basar.&#x20;
    * **PressButtonCurrentCell:** Geçerli hücredeki butona basar.&#x20;
    * **PressColumnHeader:** Belirtilen sütun başlığını tıklar.&#x20;
    * **PressEnter:** : Tablo seçiliyken klavyeden "Enter" tuşuna basma eylemini simüle eder.&#x20;
    * **SelectAll:** Tüm hücreleri seçer.&#x20;
    * **SelectColumn:** Belirtilen sütunu seçer.&#x20;
    * **SetCurrentCell:** Geçerli hücreyi belirler.&#x20;
    * **VisibleRowCount:** Görünür satır sayısını döndürür.&#x20;
    * **RowCount:** Grid View'deki toplam satır sayısını döndürür.&#x20;
    * **ModifyCell:** Tabloda düzenlenebilir (Editable) olarak ayarlanmış bir hücrenin içerisine veri yazar
    * **PressToolbarButton:** Tablonun hemen üstünde bulunan araç çubuğundaki (Toolbar) butonlara (Büyüteç, Sil, Yazdır vb.) basar.&#x20;
    * **SelectContextMenuItem:** Görünmez/Sanal olarak açılmış olan sağ tık (Context) menüsünden belirli bir seçeneği (Örn: Kopyala, Bul) tetikler.&#x20;
    * **PressTotalRowCurrentCell:** Toplam satır için geçerli hücrede işlem yapar.&#x20;
    * **CurrentCellRow:** Mevcut aktif satırın indeksini okumaz. Tablodaki odağı doğrudan verdiğiniz satır numarasına taşır.
    * **GetCellValue:**&#x54;ablodaki belirli bir hücrenin içindeki metni okuyup dışarıya (Result değişkenine) aktarır.
    * **ExtractTable:**&#x54;ablodaki (Grid) tüm satırları ve sütunları arka planda son hızda tarar ve bütün tabloyu tek bir DataTable değişkenine kopyalar.
    * **PressToolbarContextButton:**&#x53;AP Grid üzerinde bulunan araç çubuğundaki (Toolbar) belirtilen butonun Context Menu menüsünü açar. İşlem yapılacak buton ilgili butonun teknik adı/ID değeri kullanılarak belirtilir.
* **Row**&#x20;
  * **Veri Tipi:** Number&#x20;
  * **Açıklama:** İşlem yapılacak satırın numarasını belirtir.&#x20;
* **Column**&#x20;
  * **Veri Tipi:** Text&#x20;
  * **Açıklama:** İşlem yapılacak sütunun adını belirtir.&#x20;
* **Rows**&#x20;
  * **Veri Tipi:** Text&#x20;
  * **Açıklama:** Birden fazla satırı içeren işlemler için satırları belirtir.&#x20;
* **Columns**&#x20;
  * **Veri Tipi:** Text&#x20;
  * **Açıklama:** Birden fazla sütunu içeren işlemler için sütunları belirtir.&#x20;
* **From Row**&#x20;
  * **Veri Tipi:** Number&#x20;
  * **Açıklama:** Kopyalama veya taşıma işlemleri için başlangıç satırını belirtir.&#x20;
* **Dest Row**&#x20;
  * **Veri Tipi:** Number&#x20;
  * **Açıklama:** Kopyalama veya taşıma işlemleri için hedef satırını belirtir.&#x20;
* **To Row**&#x20;
  * **Veri Tipi:** Number&#x20;
  * **Açıklama:** Satır taşıma işlemleri için bitiş satırını belirtir.&#x20;
* **Value**&#x20;
  * **Veri Tipi:** Text&#x20;
  * **Açıklama:** Belirtilen hücreye yazılacak değeri belirtir.&#x20;

<figure><img src="https://25824184-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVjKcqj5ygh8bCRgScOVh%2Fuploads%2FixdvOcy5qlGKyuU6s3b9%2FGetImage%20(9).png?alt=media&amp;token=b8ed3a45-6bd3-4b14-b7be-b3c94a664ff4" alt=""><figcaption></figcaption></figure>

**Outputs**&#x20;

**Result**&#x20;

* **Veri Tipi:** Collection&#x20;
* **Açıklama:** SAP Grid View bileşeninden elde edilen veri veya işlem sonucunu içerir.&#x20;

### **Altın Kurallar**

SAP tablo aktiviteleri kullanılırken aşağıdaki kurallara dikkat edilmelidir:

**SAP By Type ve Id Kullanımı**

SAP By Type ve buna karşılık gelen Id/Name alanlarının doldurulması zorunludur.

Kullanılan metottan (ContextMenu, Click vb.) bağımsız olarak robotun ekrandaki tabloyu doğru şekilde bulabilmesi için:

* SAP By Type alanı (Örn: Id) seçilmelidir.
* Seçilen tipe karşılık gelen Id veya Name değeri girilmelidir.

**Not**: Metot açıklamalarında “Tüm parametreler boş bırakılır.” ifadesi kullanıldığında bu ifade yalnızca Row, Column, Value, Rows gibi operasyonel parametreler için geçerlidir. SAP By Type ve Id/Name alanları her zaman doldurulmalıdır.

**Satır (Row) Kullanımı**

SAP sisteminde satır indeksleri 0'dan başlar.

Örneğin:

* İlk satır için → 0
* İkinci satır için → 1
* Üçüncü satır için → 2

Bu nedenle Row parametresine işlem yapılacak satırın indeks değeri girilmelidir.

**Sütun (Column) Kullanımı**

Column parametresine ekranda görünen Türkçe veya İngilizce sütun başlığı (Örn: “Oda”, “Miktar”) girilmemelidir.

Bu alanda sütunun SAP sistemindeki Teknik Alan Adı (Field Name) kullanılmalıdır.

Teknik alan adını bulmak için:

1. İlgili tablo hücresine tıklanır.
2. Klavyeden F1 tuşuna basılır.
3. Açılan pencerede Teknik Bilgi (çekiç ikonlu) butonuna tıklanır.
4. Field Name alanındaki değer alınır.
5. Bulunan değer büyük harflerle Column parametresine girilir.

Örnek Field Name değerleri: XHABITACION, MATNR

### **Örnek Kullanımlar:**

**CurrentCellRow**

* **Çalışma Şekli:** `Row` alanında belirtilen satır tablo üzerinde aktif hale getirilir. İşlem **Success** döner, veri üretmez (**Result** boştur).
* **Kullanım:**
  1. **Sap Gui Grid Op Method** alanından `CurrentCellRow` seçin.
  2. **Row** alanına hedef satır numarasını (Örn: `0`) girin.
  3. **Column, Value, Rows** gibi diğer operasyonel alanları boş bırakın.
* **Not:** SAP tablolarında satır indeksleri `0`'dan başlar. İlk satır için `0`, ikinci satır için `1` kullanılmalıdır.

**GetCellValue**

* **Çalışma Şekli:** `Row` ve `Column` parametreleri kullanılarak hedef hücre belirlenir ve hücrenin değeri okunur. İşlem sonucunda okunan veri **Result** alanında döner.
* **Kullanım:**
  1. **Sap Gui Grid Op Method** alanından `GetCellValue` seçin.
  2. **Row** alanına hedef satır numarasını (Örn: `0`) girin.
  3. **Column** alanına hedef sütunun teknik adını (Örn: `MATNR`) girin.
  4. Diğer operasyonel alanları boş bırakın.
* **Not:** **Column** alanına ekranda görünen sütun başlığı değil, SAP sistemindeki teknik alan adı (**Field Name**) girilmelidir. Yanlış teknik alan adı kullanılması durumunda işlem hata verebilir.

**ExtractTable**

* **Çalışma Şekli:** Grid içerisindeki tablo verileri arka planda taranır ve elde edilen tüm veriler **Result** üzerinden bir **DataTable** olarak döndürülür.
* **Kullanım:**
  1. **Sap Gui Grid Op Method** alanından `ExtractTable` seçin.
  2. **Row, Column, Value, Rows** gibi operasyonel parametreleri boş bırakın.
  3. **Result** alanında dönen değeri bir **DataTable** değişkenine aktarın.
* **Not:** Tablo içerisindeki tüm verilerin tek seferde alınması gerektiği durumlarda kullanılır. Tek bir hücrenin değerini okumak için `GetCellValue` tercih edilmelidir.

**PressToolbarButton**

* **Çalışma Şekli:** `Value` alanında belirtilen butona basma işlemini tetikler. **Row** bilgisini dikkate almaz. İşlem **Success** döner, veri üretmez (**Result** boştur).
* **Kullanım:**
  1. Butona basıldığında belirli bir satıra ait işlem gerçekleştirilecekse, öncelikle `SelectedRows` metodu kullanılarak ilgili satırı seçin.
  2. Yeni bir aktivite ekleyerek **Sap Gui Grid Op Method** alanından `PressToolbarButton` seçin.
  3. **Row** ve **Column** alanlarını boş bırakın.
  4. **Value** alanına butonun SAP içerisindeki **Function Code** değerini (Örn: `&INFO`, `&DETAIL`) girin.
* **Not:** `PressToolbarButton` metodu **Row** parametresini kullanmaz. Row alanına bir değer girilse dahi bu değer dikkate alınmaz. Belirli bir satır üzerinde işlem yapılacaksa ilgili satırın önceden `SelectedRows` ile seçilmesi gerekir.
