Excel VBA ile Sütun Satır Çevrilmesi (Unpivot)

k1, k2, k3, ssc_kaynak_1, ssc_kaynak_2, ssc_kaynak_3, ssc_kaynak_4, ssc_hedef_1,ssc_hedef_2

Kolonlarına sahip bir excel dosyasını

k1, k2, k3, ssc_kaynak, ssc_hedef

kolonlarına sahip hale getirmek için aşağıdaki VBA (Visual Basic Applications) Script kullanılabilir. Buradaki amaç ssc_kaynak kolonları için 4 kolonu 4 satıra, ssc_hedef kolonları için 2 kolonu 2 satıra, toplam 4+2=6 kolonu 4*2=8 satıra çevirmek.

Örneğin:

veri_k1,veri_k2, veri_k3, veri_ssc_kaynak_1, veri_ssc_kaynak_2, veri_ssc_kaynak_3, veri_ssc_kaynak_4, veri_ssc_hedef_1, veri_ssc_hedef_2

halinden aşağıdaki hale çevirmek

veri_k1, veri_k2, veri_k3, veri_ssc_kaynak_1, veri_ssc_hedef_1
veri_k1, veri_k2, veri_k3, veri_ssc_kaynak_1, veri_ssc_hedef_2
veri_k1, veri_k2, veri_k3, veri_ssc_kaynak_2, veri_ssc_hedef_1
veri_k1, veri_k2, veri_k3, veri_ssc_kaynak_2, veri_ssc_hedef_2
veri_k1, veri_k2, veri_k3, veri_ssc_kaynak_3, veri_ssc_hedef_1
veri_k1, veri_k2, veri_k3, veri_ssc_kaynak_3, veri_ssc_hedef_2
veri_k1, veri_k2, veri_k3, veri_ssc_kaynak_4, veri_ssc_hedef_1
veri_k1, veri_k2, veri_k3, veri_ssc_kaynak_4, veri_ssc_hedef_2

excel_vba_unpivot.xlsm.zip


Option Explicit
Dim sourceWorksheet As Excel.Worksheet
Dim targetWorksheet As Excel.Worksheet
Dim sourceWorksheetRowCount As Integer
Dim targetWorksheetI As Integer
Dim i As Integer
Dim j As Integer
Dim k As Integer

Sub Unpivot()

    Set sourceWorksheet = ThisWorkbook.Worksheets("normal")
    Set targetWorksheet = ThisWorkbook.Worksheets("unpivot")
    targetWorksheet.Unprotect

    targetWorksheet.Cells(1, 1).Value = sourceWorksheet.Cells(1, 1).Value
    targetWorksheet.Cells(1, 2).Value = sourceWorksheet.Cells(1, 2).Value
    targetWorksheet.Cells(1, 3).Value = sourceWorksheet.Cells(1, 3).Value
    targetWorksheet.Cells(1, 4).Value = sourceWorksheet.Cells(1, 4).Value
    targetWorksheet.Cells(1, 5).Value = sourceWorksheet.Cells(1, 8).Value

    sourceWorksheetRowCount = sourceWorksheet.UsedRange.Rows.Count
    targetWorksheetI = 2

    For i = 2 To sourceWorksheetRowCount
        For j = 4 To 7
            For k = 8 To 9
                If (IsNull(sourceWorksheet.Cells(i, j)) = False And Trim(sourceWorksheet.Cells(i, j).Value) <> "" And IsNull(sourceWorksheet.Cells(i, k)) = False And Trim(sourceWorksheet.Cells(i, k).Value) <> "") Then
                    targetWorksheet.Cells(targetWorksheetI, 1) = sourceWorksheet.Cells(i, 1)
                    targetWorksheet.Cells(targetWorksheetI, 2) = sourceWorksheet.Cells(i, 2)
                    targetWorksheet.Cells(targetWorksheetI, 3) = sourceWorksheet.Cells(i, 3)
                    targetWorksheet.Cells(targetWorksheetI, 4) = sourceWorksheet.Cells(i, j)
                    targetWorksheet.Cells(targetWorksheetI, 5) = sourceWorksheet.Cells(i, k)
                    targetWorksheetI = targetWorksheetI + 1
                End If
            Next k
        Next j
    Next i

End Sub

Sap BO Webi tercihlerini ya da görüntüleme ve değiştirme varsayılan modunu kopyalamak

Sap Business Objects BI Çalışma Alanında (BI Launchpad) kullanıcılar için varsayılan olarak görüntüleme (view) ve değiştirme (modify) ayarları bir grubun tamamına uygulanmak istenirse Sap’nin yayınladığı aşağıdaki notta yer alan kod kullanılabilir. JSP kodu (Java SDK) ile sistemde tanımlı bir kullanıcının tercihlerinin verilen gruptaki kullanılara uygulanması sağlanıyor.

CopyWebiPreferencesWithoutDBCredentials.zip

setGroupPreferences.zip

Kaynaklar:
2206931 – How to set default View and Modify settings in Webi Preferences in BI 4.x
1659566 – How to Apply Preferences to All User Accounts in BI 4.x programmatically

Sap BO Java SDK (JSP) ile Windows AD veya LDAP kullanıcıları için Enterprise Alias oluşturulması

Sap Business Objects ortamında tüm kullanıcılar için bir değişiklik yapılması ihtiyacı olursa aşağıdaki Sap notunda sağlanan Jsp (Java SDK) koduyla tüm Windows Active Directory (Win AD) veya LDAP kullanıcıları için alias oluşturulabilir, ve sonra silinebilir.

Aynı işlem Sap BI Platform Support Tool ile de gerçeklenebilir. (Sap BI Platform Support Tool > Landscape Tools > Enterprise Alias Manager)

Add-Remove Aliases (per user type).zip

Kaynak:
1804839 – How to add or remove secEnterprise aliases via JSP script in BI 4.x

Sap BO RestFul Web Servis ile kullanıcı listesi çıkarılması

(Sap BO user list exctraction with Restful Web Service)

Sap Business Objects ortamında kullanıcı listesi ResftFul Web Service SDK (Python dilinde) almak için aşağıdaki kod kullanılabilir.

#!/usr/bin/python
# -*- coding: utf-8 -*-



import sys
reload(sys)
sys.setdefaultencoding('utf8')



import requests, json, re

baseurl = 'http://hostname_ip:port/biprws' # change hostname ip port, example: 192.168.56.101:6405

headerJson = {'accept': 'application/json'}

r = requests.get(baseurl+'/logon/long', headers=headerJson)

headerJson2 = {'accept': 'application/json', 'content-type': 'application/json'}

postDataJson = '{"userName":"Administrator","password":"PassWD","auth":"secEnterprise"}' # change password

r = requests.post(baseurl+'/logon/long', headers=headerJson2, data=postDataJson)

sapBoLogonToken = '"' + json.loads(r.text)['logonToken'] + '"'

headerJson3 = {'accept': 'application/json', 'X-SAP-LogonToken': sapBoLogonToken}



looperPage = 1
looperPageSize = 50

r = requests.get(baseurl+'/v1/users?page='+str(looperPage)+'&pagesize='+str(looperPageSize), headers=headerJson3)
parsedJson = json.loads(r.text)

userList = []
while len(parsedJson["entries"]) == looperPageSize:
  userList.extend( parsedJson["entries"] )
  looperPage += 1
  r = requests.get(baseurl+'/v1/users?page='+str(looperPage)+'&pagesize='+str(looperPageSize), headers=headerJson3)
  parsedJson = json.loads(r.text)



# rest log off
headerJson4 = {'accept': 'application/json', 'content-type': 'application/json', 'X-SAP-LogonToken': sapBoLogonToken}
r = requests.post(baseurl+'/logoff', headers=headerJson4)



f = open('./user_list.csv','w')

f.write("user_id,user_name,user_fullname\n")
for uli in userList:
  f.write(uli["id"]+","+uli["name"]+","+uli["fullname"]+"\n")

"""
# maybe needed for some users detection
f.write("user_id,user_name,user_name_length,user_fullname,user_fullname_length,reg_exp_flag\n")
for uli in userList:
  if ( len(re.findall("[a-zA-Z]{2}[0-9]{4}",uli["name"])) > 0 ):
    reg_exp_flag = "1"
  else:
    reg_exp_flag = "0"
  f.write(uli["id"]+","+uli["name"]+","+str(len(uli["name"]))+","+uli["fullname"]+","+str(len(uli["fullname"]))+","+reg_exp_flag+"\n")
# reg_exp_flag=1, user_fullname_length<>0, user_name_length=6
"""

f.close()

Dosya olarak indirmek için: re_cmc_user_list.py

WACS Tomcat ile gerçeklenebiliyor

Sap Business Objects (Sap BO) 4.2 SP5 ile birlikte Web Application Container Server (WACS, Server Intelligence Agent SIA Servislerinden biri) ın yaptığı görev Tomcat üzerinde yapılabilir hale geldi. WACS nin görevi BI platforma Restful Web Servisleri ile erişmeyi sağlamak. Yeni geliştirilen Fiori BI Çalışma Alanı (BI Launchpad) bu restful web servisleri üzerinden çalışıyor.

Kaynak:
SAP BI 4.2 SP05 : Decoupling of BI Platform RESTful web services from WACS

Fiori BI Launchpad /BOE/BILaunchpad Giriş Ekranı Özelleştirmesi

Sap Business Objects 4.2 SP4 ile Fiori arayüzlü BO BI Launchpad özelliği (seçeneği) yayınladı, 4.2 SP5 ile de daha da geliştirildi (ve geliştirilmeye devam ediliyor). BI Çalışma Alanı ve Raporları Görüntüleme için son kullanıcıya güzel özellikler, görünüm ve kolay kullanım (user experience) gibi yeni jenerasyon özellikler sunuyor. Mevcut durumda çok yeni olması sebebiyle geleneksel BI Çalışma Alanı kadar özelleştirmelere imkan tanımasa da (şu anda tüm kullanıcılar için çeşitli özellikleri atama gibi imkanlar tanımıyor) Sap bu alana daha çok yatırım yapacak bir çok özellik geliştirilecek gibi görünüyor.

Sadece Logo değişimi yapmak için değiştirilmesi gereken dosyalar.
fiori_bi_only_flyfish_logo.zip

/Sap_BO/tomcat/webapps/BOE/WEB-INF/config/custom/FioriBI.properties
Bu dosyadaki app.name okunmuyor bilaunchpad.properties dosyasındaki app.name geçerli oluyor. Türkçe karakterler de Unicode ile doğru bir şekilde gösterilemiyor.
/Sap_BO/tomcat/webapps/BOE/WEB-INF/eclipse/plugins/webpath.FioriBI/web/com/sap/fioribi/images/ucan_balik_logo.png
/Sap_BO/tomcat/webapps/BOE/WEB-INF/eclipse/plugins/webpath.FioriBI/web/com/sap/fioribi/css/Logonpage.css
.BILP-Logo {
width: 64px!important;
height: 32px!important;
background-image: url(../images/ucan_balik_logo.png)!important;
}
/Sap_BO/tomcat/webapps/BOE/WEB-INF/eclipse/plugins/webpath.FioriBI/web/com/sap/fioribi/modules/logonpage/LogonpageView.view.js
İş Zekası Raporlama Platformu yazdırılması.
Tarayıcı diline göre Authentication Type yerine Kimlik Doğrulama yazılması.

Giriş ekranını tamamen özelleştirmek için değiştirilen / geliştirilen dosyalar.
fiori_bi_full_customization.zip

/Sap_BO/tomcat/webapps/BOE/WEB-INF/config/custom/FioriBI.properties
/Sap_BO/tomcat/webapps/BOE/WEB-INF/eclipse/plugins/webpath.FioriBI/web/com/sap/fioribi/images/ucan_balik_logo.png
/Sap_BO/tomcat/webapps/BOE/WEB-INF/eclipse/plugins/webpath.FioriBI/web/com/sap/fioribi/images/sap_bo_flying_fish_background.png
/Sap_BO/tomcat/webapps/BOE/WEB-INF/eclipse/plugins/webpath.FioriBI/web/com/sap/fioribi/css/Logonpage.css
/Sap_BO/tomcat/webapps/BOE/WEB-INF/eclipse/plugins/webpath.FioriBI/web/com/sap/fioribi/modules/logonpage/LogonpageView.view.js

Kaynaklar:
Fiorified BI Launchpad in BOE 4.2
SAP BI 4.2 SP05 : What’s New in Fiori BI Launchpad
Customize the Fiorified BI Launchpad in BOE 4.2