SAP GUI For Java Connection Strings

A question I get often is about the way I connect to SAP ECC from my Mac.

Obviously, many users prefer to install Windows to their Macbooks and run SAP GUI For Windows over it.

However; SAP has an alternative less known GUI for Linux / Mac systems: SAP GUI For Java. You can download it from http://service.sap.com for free using an S-user, install it to your Mac like a regular application and connect to any SAP ECC system. No need to install Windows at all.

The way you define a new SAP Connection in SAP GUI For Java differs slightly from SAP GUI For Windows. Let’s assume that you have the following connection information:

  • Address: 10.1.3.40
  • System No: 02

In SAP GUI For Java, you need to get to the “Advanced” tab, click “Expert mode” and enter the following connection string:

conn=/H/10.1.3.40/S/3202

Obviously, the address goes between /H/ and /S/ and the system number goes to the end of the string. If your system ID is 00, you need to enter 3200. If your system ID is 07, you need to enter 3207. In our case, your system ID is 02 so you need to enter 3202.

That’s all there is! Using this connection string, you should be good to go.

Your connection string can contain additional parameters; such as your user name, client number, etc. Here are some sample connection strings:

conn=/H/sapsrv/S/3204&jenc=MacTurkish&jloc=tr&cpg=1607&clnt=100&user=kerem

Here are some sample connection strings going over routers (IP’s changed for security reasons):

conn=/H/88.249.244.45/H/10.0.0.5/S/3200

conn=/H/78.186.178.12/W/golive2013/H/192.168.2.10/S/3200
The only disadvantage of SAP GUI For Java is for ABAP programmers: Smartform designer, Workflow tools and graphical screen designer tools are Windows-only and won’t run under SAP GUI For Java. Personally, I have a casual Windows installation with SAP GUI for Windows living under VMWare Fusion. Whenever I need to use one of those tools (maybe once a month); I run Windows inside the virtual machine without leaving Mac OS, get my job done, shut down Windows and continue working on the Mac with SAP GUI For Java.

My Books

 


Design Patterns in ABAP Objects

1464_high_res_2d

Boston, SAP Press, 2016, ISBN 978-1-4932-1465-5

Use design patterns to step up your object-oriented ABAP game, starting with MVC! Want to create objects only when needed? Call objects only when required, minimizing runtime and memory costs? Reduce errors and effort by only coding an object once? Future-proof your code with a flexible design? Design patterns are the answer! With this guide, you’ll get practical examples for every design pattern that will have you writing readable, flexible, and reusable code in no time!

– Use design patterns to write better code, faster

– Implement common architectural, structural, and behavioral design patterns

– See design patterns in action with real-world SAP applications

Link: SAP Press, Amazon

 


Ne Kadar Hayvansın

0000000444842-1

İstanbul, Pusula Yayıncılık, 2013, ISBN 605-510-602-7

Doğanın gizli programı insan ve hayvan davranışlarını nasıl şekillendiriyor?

Modern insana has üstünlük duygusunu bir an için bir kenara bırakıp doğaya; doğadaki diğer canlılara bakın. Sonra bir de kendinize bakın. İlk seferde, sosyal ortamımızın içimize kazıdığı şartlanmalarla karşılaşacaksınız muhtemelen, arada büyük farklar bulacaksınız. Bir süre sonra bir daha bakın. Bir daha… Bir daha… Önyargılarınızı bir kenara bırakıp daha dikkatli bakmaya başladıkça, aradaki farkların inandırılmış olduğunuzdan çok daha az olduğunu fark etmeye başlayacaksınız…

Erkekler neden futbola bayılır? Neden alışveriş yapmak kadınların kendini iyi hissetmesini sağlar? Seksten sonra neden erkekler uyumak isterken kadınlar canlanmış olur? Korku filminden sonra yorgana sarılınca neden kendimizi güvende hissederiz?

Doğadaki bütün canlılar, ortak bir programla dünyaya gelir. Bu program, insanda da vardır, köpekte de; ayıda da vardır, kaplanda da. Bu programı anlayabilen biri, kendine ve başka insanlara ait davranışların çok büyük bir kısmını da anlayabilir, açıklayabilir, hatta öngörebilir.

Dr. Kerem Köseoğlu, söz konusu programı deşifre edip herkesin anlayabileceği bir şekilde açıklıyor. Kitabı okudukça ve kendi içinizdeki programı da gözlemlemeye başladıkça; aslında her şeyin ne kadar basit olduğunu göreceksiniz. Hatta bu kadar uzun zamandır bu kadar açık bir şekilde ortada olan bir şeyi, nasıl olup da keşfedememiş olduğunuza şaşıracaksınız belki de…

Kolay okunan, pek çok konudaki görüşlerinizi değiştirecek ve size yeni bir bakış açısı kazandıracak, keyifli bir kitap… En önemlisi, diğer canlılara ve kendinize daha anlayışlı ve daha hoşgörülü davranmanızı sağlayacak!

Link: Pusula, Amazon, D&R, HepsiBuradaIdefix, KitapYurdu

 


Veritabanı Mantığı (10.)

0000000185275-1

İstanbul, Pusula Yayıncılık, 2005, ISBN 975-647-756-3

Bu kitapta yazar, SQL’in ne olduğu ve nasıl kullanıldığı gibi konulardan önce, veritabanı kavramına değiniyor. Bu çerçevede; veritabanının ne olduğu, nerelerde hangi amaçlarla kullanıldığı, nasıl hazırlanıp programlandığı gibi konulara açıklık getiriyor. Özellikle; yeni oluşturulan bir veritabanı içerisinde tablo tasarımının nasıl yapılması gerektiği konusu üzerinde ayrıntılı bir biçimde duruluyor. Yaygın olarak kullanılan tüm veritabanı programlarının ortak dili olan SQL’i öğretmek amacıyla hazırlanan bu kitapta, her konu birden çok örnekle anlatılıyor ve birkaç kez MS-Access programını çalıştırmış bir kullanıcının bile rahatça takip edebileceği bir dil kullanıyor.

Link: Pusula, Amazon, D&R, HepsiBuradaIdefix, KitapYurduDownloads

 


Bilgisayar Destekli Müzik

0000000180374-1

İstanbul, Pusula Yayıncılık, 2005, ISBN 975-6477-53-9

Bilgisayar desteği arkanızda olduğu sürece, evinizde ekonomik yollardan müzik yapabilirsiniz! Fazla masraf yapmadan kendi ev stüdyonuzu kurabilir ve odanızda yaptığınız çalışmalarla profesyonel kayıt stüdyolarını aratmayacak sonuçlara imza atabilirsiniz.

Kitapta bahsedilen programları kullanarak ruhunuzdan dökülen notaları dijital ortama aktarabilir, üzerlerinde sayısız düzenleme yapabilirsiniz. Tüm bunları; ortalama bir bilgisayar, doğru seçilmiş bir ses kartı ve program ile kolayca gerçekleştirebilirsiniz!

• MIDI nedir?
• Audio Nedir?
• Popüler Müzik Programları: Sequencer, Loop, Audio Düzenleme, Notasyon, SoundFont Programları
• Adım adım örnek uygulamalar
• Cakewalk Sonar ve Sound Forge Programlarının detaylı anlatımı
• Loop bazlı projeler ve Fruity Loops
• Notasyon ve Sibelius

Kendi müziklerinizi nasıl hazırlayacağınızı adım adım tarif eden kitapla birlikte, yazarın Audio çalışmalarını ve kitapta kullanılan programların deneme sürümlerini içeren CD de hediye!…

 


Programcılık Mantığı (9.)

0000000160095-1

İstanbul, Pusula Yayıncılık, 2004, ISBN 975-647-738-5

Programcılık nedir? Programcı olabilmek için neler gerekir? Kimler programcı olabilir? Programcılar ne yapar? Programcı kimdir?

• Programlama dilleri ve karşılaştırmaları
• Programcılık Terimleri
• Temel Algoritma Öğeleri
• Mantıksal Operatörler
• Akış Şemaları
• Nesne Temelli Programlama
• Görsel Programcılık

Bu sorulardan yola çıkarak, programcılığı masaya yatıran Programcılık Mantığı, programcı olmak isteyen ama nereden başlayacağını bilemeyenler için yazılmış benzersiz bir kaynak. Temel programlama öğelerinden, görsel programcılığa, programcılık terimlerinden nesne temelli programlamaya kadar, programcılık hakkında bilmek isteyeceğiniz her şey bu kitapta yalın bir dille ve günlük hayattan örneklerle anlatılıyor. Programcılığa nereden başlayacağını bilemeyenler, bu kitap tam sizin için. Değişkenler, fonksiyonlar, sınıf ve nesneler, akış şemaları, görsel programcılık, nesne temelli programlama gibi temel programlama konularını detaylı olarak inceleyen kitap, işlediği her konu için Java, C#, VB.NET ve Delphi’de yazılmış örnek uygulamalar da içeriyor. Böylece en çok kullanılan bu dört programlama dilini de bir arada görme ve kıyaslama imkânı da sunuyor.

Algoritma yapılarını, günlük hayattan örneklerden yola çıkarak anlatan, her uygulamanın dört ayrı dilde yazımını veren bu kitap, bu özellikleriyle Türkiye’de bir ilk.

Link: Pusula, Amazon, D&R, HepsiBurada, Idefix, KitapYurdu, Downloads


Bir Romeo Bir Juliet

screen-shot-2016-10-24-at-18-19-22

İstanbul, Self, 1999

 

Romeo geceye bakıp Juliet’i her düşündüğünde
Bir yıldız kayar Juliet’in gözlerine ve biraz daha parlar gece…
Juliet geceye bakıp Romeo’yu her düşündüğünde
Bir yıldız daha kayar Romeo’nun içine ve derinliklerde kaybolur gider… Aslında bilirler ki Romeo ile Juliet,
Güneş onların birbirlerini bulduğu gün bir daha doğmayacak…
İlkin son ve sonun ilk olacağı ilk ve son karşılaşma olacak bu…
Romeo ilk ve son kez Romeo,
Juliet ise ilk ve son kez Juliet olacak…

 

Hacking SAP GUI for Java for MacBook Retina Compatibility

Good news: SAP GUI for Java 7.30 is out. Bad news: It looks bad on MacBooks with retina display. Here is a small hack to make it retina-compatible.

Make sure that SAP GUI is not running.

Browse “/Applications/SAP Clients/SAPGUI”. Right-click “SAPGUI 7.30.app” and select “Show Package Contents”. Open “Info.plist” with TextEdit and add the following lines to the very end of the file, before the last two lines:

<key>NSHighResolutionCapable</key>
<true/>
</dict>
</plist>

Save & exit.

Run “/Applications/Utilities/Terminal.app” and type the following command (modify if SAP GUI is installed elsewhere):

touch /Applications/SAP\ Clients/SAPGUI\ 7.30/SAPGUI\ 7.30.app 

That’s it! You may (or may not) need to restart your Mac; but next time you run SAP GUI for Java, it will look crystal clear – utilizing the potential of your retina display.

JSP – MySQL Türkçe Karakter Probleminin Çözümü

JSP ile MySql kullanıyor ve Türkçe karakter sorunu yaşıyorsanız; aşağıdaki adımlarla bu sorunu çözebilirsiniz.

Veritabanında Schema, Table ve Column bazındaki tüm Collation’larınız “utf8 – utf8_unicode_ci” olmalıdır.

JSP sayfalarınızın tamamında aşağıdaki Tag’lerden biri yer almalıdır:

<%@page pageEncoding="UTF-8"%>

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

Veritabanı bağlantısını sağlayacağınız zaman, Connection String’inize aşağıdaki gibi karakter setini dahil edin:

jdbc:mysql://localhost:3306/db_name?useUnicode=yes&characterEncoding=UTF-8

Son olarak; özellikle Request / Response ile aldığınız Text’leri SQL sorgusuna dahil etmeden önce aşağıdaki kod ile dönüşümden geçirin (Gelen metin: Input, SQL’e gidecek metin: output):

byte[] bytes = new byte[Input.length()];
for (int i = 0; i < Input.length(); i++) bytes[i] = (byte) Input.charAt(i);
String output = new String(bytes, "UTF-8");

Blackberry Javascript Problem – And Solution

Recently, one of our clients had a Javascript related problem on their Blackberry 9000 devices. An Intranet page, which used to work properly in former Blackberry models, stopped working on their new Blackberries.

 
 

The same page works well on Internet Explorer, but doesn’t work on Mozilla Firefox either.

 
 

Upon closer inspection, I have found out that this is a Javascript related problem. Here is the code snippet from the problematic page:

 
 

(…….)

url += document.getElementById(‘ans’).value;

(…….)

<select name=ans>

<option>…</option>

</select>

 
 

The error occured on the getElementById command. The reason is; Blackberry 9000 (and Mozilla) makes it mandantory to have the document elements the “id” property defined. Here is the corrected code snippet:

 
 

(…….)

url += document.getElementById(‘ans’).value;

(…….)

<select id=ans name=ans>

<option>…</option>

</select>

 
 

 
 

And that works like a charm.

 
 

Blackberry probably changed it’s Javascript engine on their new models and turned to Mozilla. You may think that it’s a problem with Mozilla & Blackberry, but actually it’s a “problem” with Microsoft. According to the HTML DOM, the first code snippet isn’t supposed to work at all – because HTML elements must have their “id” property defined so that getElementById works. Check http://www.w3schools.com/HTMLDOM/met_doc_getelementbyid.asp for reference.

 
 

This means; Microsoft’s Javascript engine tolerates the missing “id” property and has the ability to use the “name” property instead. Mozilla and Blackberry is working as intended and as defined in DOM. However, because of Microsoft’s extra tolerance; websites tested on Microsoft Internet Explorer only make Mozilla (and probably other browsers) look buggy.

Teknoloji Seçimi – Java vs .NET


Bir tanıdıktan daha duymuştum ama emin değildim yine de. “Türkiye’de java ile iş yapan çok fazla kurum olmadığından aranan kişiler genelde akademik eğitimi olan kişiler, bu yüzden .net öğren” demişti. Ne kadar doğru bilemem ama her ikisininde birbirine olan benzerliğini düşünürsem ( kitabınızda ki örneklerde fark ettim aslında bu benzerliği ) dediğinizi gibi ikisine de aşikar olabilirim.

Peki son bir rica, bende araştıracağım ama sizin tavsiye edebileceğiniz .net kitabı var mı? Yani giriş seviyesi için şu iyi olur diyebileceğiniz…

Türkiye’de Java ile iş yapan kurum olmadığı görüşüne pek katılmıyorum. Microsoft haricindeki birçok büyük firma (örnek: SAP, Oracle, IBM) ürünlerinin çok önemli bir kısmında Java altyapısı kullanmakta veya doğrudan Java desteği vermektedir. Daha net bir örnek vereyim: SAP’nin Netweaver çatısı altındaki ürün yelpazesinin tamamı Java tabanlıdır. Aynı şekilde Oracle veya IBM ürünleri üzerinde geliştirme yapmak istediğinde bulacağın API’ler yine muhtemelen Java tabanlı olacaktır. Bankacılık, finans, telekom gibi sektörlerde de Java kullanımı oldukça yaygındır.

Ne var ki; .NET daha popüler, Java daha başarılı, .NET daha hızlı, Java ile falanca projeyi yapmışlar gibi söylemlere dayanarak teknoloji seçimi yapmayı doğru bulmuyorum. Geçmiş bir yıla baktığımda, kendi yaptığımız projelerde .NET kullandığımız da oldu Java da. Kullanım oranımız ise neredeyse aynı diyebilirim. Burada önemli olan şey; bir teknolojiyi seçip fanatik bir şekilde ona odaklanmak yerine farklı teknolojilerin artısı ve eksisi olduğunu kabul edip doğru yerde doğru teknolojiyi kullanabilmektir. Bıçak ile çorba içemeyeceğin gibi, kaşık ile de elma soyamazsın 😉

Buna karşılık; Türkiye’de istihdam anlamında .NET ile Java programcısı arayışındaki iş ilanı sayılarını karşılaştıran bir araştırma yapılmış ise, bundan haberdar değilim. Böyle bir araştırma ilginç olabilirdi.

Programcılığı ciddi bir kariyer konusu olarak düşünüyorsan, ikisine birden aşina olmanda fayda var diye düşünüyorum. Muhtemelen birinde uzman seviyesinde, diğerinde ise orta seviyede olmayı hedeflemelisin. Zaman geçtikçe özel çalışmalarınla ikincisinde de uzman seviyesine gelebilirsin.

Burada dikkat etmen gereken konu şu: Karşına OOP Design, Threading, Event gibi kavramlar çıktıkça bunların .NET veya Java’da Syntax anlamında nasıl yapıldığını ezberlemek yerine kavramsal olarak anlamaya çalış. Nerede, niçin kullanılır, ne işe yarar, arkasındaki mekanizma nedir, bunları anlamaya çalış. Mantık olarak anladığında; .NET veya Java (veya Phyton, her neyse) kullanıyor olman sadece Syntax farkı yaratan basit bir detay olacaktır.

Kitap konusuna gelince… .NET konusunda piyasada pek çok kitap var ama benim şahsen alıp okuduğum bir kitap olmadı, o yüzden özel bir tavsiyem yok. Ama forumlarda yapılan yorumlara bakarak çok tavsiye edilen kitaplardan birini seçebilirsin diye düşünüyorum. Java konusunda ise Deitel’in yayınlamış olduğu Java kitabını şahsen kullanmış olduğum için tavsiye edebilirim. Kitap İngilizce’dir, ve ben Yeditepe Üniversitesi’nin kitapçısından almıştım.

İyi çalışmalar…

Java Parantez Stilleri

Sizin kitabınızı aldım. ilk günde 50. sayfaya yada bir başka değişle DEĞİŞKENLERE geldim. buraya kadar çok açık anlatmışsınz. ilk önce size amacımı söyleyeyim. ben bir satışcıyım. Piyasada baktım CRM programları çok pahalı bende bunu kendim yapacam diyerek başladım. Kitabınızın okuduğum kadarıyla JAVA kullanmaya karar verdim. Sizin tavsiyeniz nedir?

şimdi geçelim diğer sorulara.

anladığım kadarıyla program yazmaya değişkenleri tanıtarak ve alacağı değeri tanıtarak başlıyoruz.

boolean bWindowsExists; yadıktan sonra entera basıp mı aşağıdakini yazıyoruz.

if (bWindowsExits) dan sonra aşağı satıra geçmelimiyiz? yoksa devam etmeli miyiz? yani

if (bWindowsExits){sistem.out.printin (“ş uanda değer 1;”);} gibi devam mı etmeli.

Merhaba…

Halihazırda piyasadaki en yaygın geliştirme platformları Microsoft .NET ve Java’dır. İkisi arasındaki karşılaştırmayı kitap içerisinde zaten yapmıştım. İstediğini seçebilirsin.

if komutundan sonra Enter’a basıp basmayacağın senin stiline bağlı. Ben genelde şöyle yazmayı tercih ediyorum, ama çok farklı yaklaşımlar da gördüm:

if (…)
{


}

Ancak; şöyle bir ipucu verebilirim: Eğer if’ten sonra tek bir koşul yazacaksan, Enter’a basmana da gerek yok parantez açmana da. Mesela şu komut Java’da geçerlidir:

if (bWindowExists) System.out.println(“Şu anda değer 1”);

Ama şöyle yazarsan işler değişir:

if (bWindowExists) System.out.println(“Şu anda değer 1”);
System.out.println(“Tamam mı?”);

Bu durumda, “Tamam mı” yazısı bWindowExists’te hangi değer olursa olsun ekranda görüntülenecektir. Koşula bağlı birden fazla komut, mutlaka küme paranteziyle çevrelenmelidir:

if (bWindowExists)
{
System.out.println(“Şu anda değer 1”);
System.out.println(“Tamam mı?”);
}

İyi çalışmalar…