Update all items with impex

We canuse bactcmode for updating all items by type

UPDATE Product[batchmode=true];itemType(code)[unique=true];description[en][default='test']
;Product;
;VariantProduct;

Copy schema to another in Hana DB

You can get workfolder at backup console. Get destination folder and change backup as work for example.

export "SOURCESCHEMA"."*" as binary into '/workfolder' with replace threads 10;
import "SOURCESCHEMA"."*" as binary from '/workfolder' with rename schema "SOURCESCHEMA" to "TARGETSCHEMA";

If you get privilege error like “SAP DBTech JDBC: [258]: insufficient privilege: Not authorized”, edit your user at Security menu and add EXPORT/IMPORT System Privileges.

Install hybris temp/trial license

You can reset developer license with initializing. In initialize process all data deleted. You can install temp license without initialize. Use license.bat/license.sh for generating temp license. You can find this script at bin/platform. You need to create temp license by db. We have these options:

  • CPS_MYS = mysql
  • CPS_HDB = hana
  • CPS_ORA = oracle
  • CPS_MSS = mssql
  • CPS_POS = postgres
  • CPS_SQL = ?

For example we create temp license for mysql:
./license.sh -temp CPS_MYS

You will get temp license for 90 day.

You need remove old license after 90 day for new one. You can delete it with below command:
./license.sh -delete SystemID HardwareKey SoftwareProducts

You can get above parameters with below command:
./license.sh -get

— thanks to Yusuf for above information.

Also you can reset trial license with updating user creation time.

UPDATE users set createdTS = NOW()

NOTE: NOW() command for MySql, you must chose relevant command for your database. There is no option running update command on UI, you can develop groovy script for running this command over jdbc.

Change all table unload priority in hana

Change all table priority for unload in short time.

create procedure update_unload_priority() LANGUAGE SQLSCRIPT AS
CURSOR C_TABLE
FOR SELECT 'ALTER TABLE "' || TABLE_NAME || '" UNLOAD PRIORITY 9;' AS SQLTEXT
FROM SYS.TABLES
WHERE SCHEMA_NAME = 'MYSCHEMA' AND TABLE_TYPE = 'COLUMN' and temporary_table_type = 'NONE' AND unload_priority <> 9;
BEGIN
OPEN C_TABLE;
FOR cur_row AS C_TABLE DO
EXEC cur_row.SQLTEXT;
END FOR;
END;

Convert all row table to column in Hana

You can convert all row table to column table with below procedure:

create procedure convert_column() LANGUAGE SQLSCRIPT AS
CURSOR C_TABLE
FOR SELECT 'ALTER TABLE "' || TABLE_NAME || '" COLUMN;' AS SQLTEXT
FROM SYS.TABLES
WHERE SCHEMA_NAME = 'SAPABAP1' AND TABLE_TYPE = 'ROW' and temporary_table_type = 'NONE';
BEGIN
  OPEN C_TABLE;
  FOR cur_row AS C_TABLE DO
    EXEC cur_row.SQLTEXT;
  END FOR;
END;

You can execute below procedure like this:

CALL convert_column;

Unloading all column table in hana

You can use below procedure for unloading all column tables in Hana.

create procedure unload_all() LANGUAGE SQLSCRIPT AS
CURSOR C_TABLE
FOR SELECT 'UNLOAD “' || TABLE_NAME || '”;' AS SQLTEXT
FROM SYS.TABLES
WHERE SCHEMA_NAME = 'MYSCHEMA' AND TABLE_TYPE = 'COLUMN' and temporary_table_type = 'NONE';
BEGIN
OPEN C_TABLE;
FOR cur_row AS C_TABLE DO
EXEC cur_row.SQLTEXT;
END FOR;
END;

You call this procedure like below:

CALL unload_all;

Enum tipindeki alanlar için varsayılan değer atamak

<enumtypes>
    <enumtype code="MyEnum" generate="true" autocreate="true">
        <value code="MyValue1" />
        <value code="MyValue2"/>
    </enumtype>
</enumtypes>

<itemtype code="MyItem" extends="BaseItem" autocreate="true" generate="true" jaloclass="de.hybris.platform.warehousing.jalo.MyItem">
    <attributes>
        <attribute type="MyEnum" qualifier="myAttribute">
            <modifiers optional="false" />
            <defaultvalue>em().getEnumerationValue("MyItem", "MyValue1")</defaultvalue>
            <description>My attribute.</description>
            <persistence type="property" />
        </attribute>
    </attributes>
</itemtype>

İndeks tabloları

Index Tabloları
VRPMA SD indeksi: Malzeme başına faturalama kalemleri

 

Belli başlı git komutları

Sıkça kullandığım git komutlarını listelemeye çalıştım.

No Komut Açıklama
1 git checkout dev Lokaldeki dev brach’ine geçmenizi sağlar.
2 git pull Tüm brach güncellemelerini sunucudan indirir.
3 git checkout -b bug/yeni Yeni bir lokal brach oluşturur.
4 git checkout bug/yeni  Lokal bug/yeni branch’ine geçmeyi sağlar.
5 git commit -m “Açıklama” Yapılan değişiklikleri çalışılan lokal brach’e kaydeder.
6 git push Kaydedilen değişiklikleri çalışılan brach ile aynı isimle sunucuya gönderir.
7 git merge dev Çalışılan brach’i lokal dev branch’ine birleştirir.
8 git stash Yapılan değişikliği geçici olarak kaydeder.
9 git stash pop Kaydedilen geçici değişikliği geri getirir.
10 git cherry-pick commitno Commit’i aktif branch’a taşır.
11 git reset --hard HEAD~x x commit öncesine döner.
~x yerine ^ kullanılırsa son commit’i ifade eder.
–hard yapılan değişiklikleri siler.
12 git push -f <remote> <branch> brach geçmişini temizleyerek gönderir.
13 git stash clear Geçici dosyaları temizler.
14 git reset HEAD^ Son commit’i geri alır, değişiklikler korunur.

Komutların kullanımı için örnek senaryolar:

Yeni geliştirme yapılması:
1 -> 2 -> 3 -> 5 -> 6 -> 1 -> 2 -> 4 -> 7 -> 6

Henüz sunucuya gönderilmemiş (6) değişiklikleri farklı bri brach’e taşımak:
4 -> 10

Sunucuya gönderilmiş commitleri silmek:
11 -> 12

Sunucuya gönderdilmiş commit’i silerek yeni bir commit ile göndermek için:
14 -> 12

Sunucuya gönderdilmiş commit içindeki bir dosyaya ait değişliğin kaldırılması:
git show commitno -- some_file.c | git apply -R

Aynı kodların başka bir git sunucusuna aynalanması / kopyalanması:
git push --mirror https://github.com/mkysoft/myproject.git

Detaylar: http://ohshitgit.com/

Git konusunda değerli bir kaynak: https://www.slideshare.net/lemiorhan/git-antipatterns-extended-version-with-28-common-antipatterns-scturkey-meetup