﻿<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>MagdaQ &#187; SAP</title>
	<atom:link href="http://www.programistka.eu/blog/lang/pl-pl/category/sap/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.programistka.eu/blog</link>
	<description>Bo w IT pracują również kobiety</description>
	<lastBuildDate>Thu, 16 Feb 2012 23:21:28 +0000</lastBuildDate>
	<language>pl-pl</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>[ABAP] Odczyt pliku z archiwum do stringa</title>
		<link>http://www.programistka.eu/blog/lang/pl-pl/2012/02/17/odczyt</link>
		<comments>http://www.programistka.eu/blog/lang/pl-pl/2012/02/17/odczyt#comments</comments>
		<pubDate>Thu, 16 Feb 2012 23:15:32 +0000</pubDate>
		<dc:creator>MagdaQ</dc:creator>
				<category><![CDATA[SAP]]></category>
		<category><![CDATA[ABAP]]></category>
		<category><![CDATA[archive link]]></category>
		<category><![CDATA[base64]]></category>
		<category><![CDATA[hricolfoto]]></category>
		<category><![CDATA[inline]]></category>

		<guid isPermaLink="false">http://www.programistka.eu/blog/?p=173</guid>
		<description><![CDATA[Ostatnio rozwiązywałam problem odczytu zdjęcia pracownika zapisanego w kartotece pracowniczej. Takie zdjęcie przechowywane jest w postaci Archive Linku i o ile ściągniecie go na dysk nie stanowi problemu (jest kilka modułów funkcyjnych, które do tego służą) to odczytanie go w sposób zrozumiały dla edytora tekstu, jakim jest MS Word już nie jest takie proste. Do [...]]]></description>
			<content:encoded><![CDATA[<p>Ostatnio rozwiązywałam problem odczytu zdjęcia pracownika zapisanego w kartotece pracowniczej. Takie zdjęcie przechowywane jest w postaci Archive Linku i o ile ściągniecie go na dysk nie stanowi problemu (jest kilka modułów funkcyjnych, które do tego służą) to odczytanie go w sposób zrozumiały dla edytora tekstu, jakim jest MS Word już nie jest takie proste. Do zapisu dowolnych plików do formatu .doc korzystamy z dedykowanej aplikacji opartej na zapisie żądanego dokumentu w języku HTML (który jest bardzo zrozumiały dla MS Word), zatem problem ograniczył się do ściągnięcia zdjęcia w formacie akceptowalnym dla tagu IMG &#8211; w postaci inline. Dzięki temu nie musimy zapisywać oddzielnie obrazków, linkować ich do pliku i martwić się, czy na pewno zawsze będą w lokalizacji, w której je zapisaliśmy. W zapisie obrazka inline, nasze zdjęcie jest zapisane w postaci ciągu znaków w treści dokumentu HTML.</p>
<p>Konkretniej &#8211; będziemy konwertować obrazki z postaci binarnej do stringa o podstawie 64bitowej. Taką konwersję dla dowolnego pliku można zrobić np. w takim <a href="http://www.motobit.com/util/base64-decoder-encoder.asp">edytorze</a>. Po wczytaniu i przekonwertowaniu obrazka w takim edytorze otrzymamy ciąg znaków, który możemy wstawić w HTMLowy tag IMG:</p>
<p>&#60;img src=&#8221;data:image/jpeg;base64,CIĄG_ZNAKÓW_OBRAZKA&#8221; height=&#8221;100&#8243; width=&#8221;100&#8243;/&#62;</p>
<p>Aby powyższy ciąg znaków otrzymać dla dokumentu zapisanego w archiwum wykorzystamy cztery moduły funkcyjne:</p>
<p>1. Pobieramy listę dokumentów przypisanych do pracownika &#8211; wykorzystujemy do tego funkcję ARCHIV_CONNECTINFO_GET_META. Ważne, żeby w parametrze object_id podać numer pracownika i na końcu gwiazdkę (*) np. &#8217;10000021*&#8217;</p>
<pre>  CALL FUNCTION 'ARCHIV_CONNECTINFO_GET_META'
    EXPORTING
      object_id    = lv_objid
      ar_object    = ''
      sap_object   = 'PREL'
    IMPORTING
      number       = lv_number_hits
    TABLES
      connect_info = lt_hit_table
    EXCEPTIONS
      OTHERS       = 1.</pre>
<p>2. Tabela lt_hit_table zawiera wszystkie dokumenty przypisane do osoby. Nas interesują zdjęcia ( pole ar_object w tabeli = HRICOLFOTO). Szukamy wybranego wpisu (ja go zapisałam do ls_hit_table) i dla niego wywołujemy kolejną funkcję &#8211; ARCHIVEOBJECT_GET_TABLE, która pobiera plik binarnie do tabelki:</p>
<pre>    doc_type = ls_hit_table-ar_object.
    CALL FUNCTION 'ARCHIVOBJECT_GET_TABLE'
    EXPORTING
      archiv_id                = ls_hit_table-archiv_id
      document_type            = doc_type
      archiv_doc_id            = ls_hit_table-arc_doc_id
    TABLES
      binarchivobject          = binary_tab
    EXCEPTIONS
      error_archiv             = 1
      error_communicationtable = 2
      error_kernel             = 3
      OTHERS                   = 4.</pre>
<p>3. Obliczamy długość pliku (raczej mało elegancko):</p>
<pre>  length = LINES( binary_tab ).
  length = length * 1024.</pre>
<p>4. Wywołujemy funkcję SCMS_BINARY_TO_XSTRING, która stworzy nam jeden ciąg bajtów w postaci xtsringa z tabelki binarnej:</p>
<pre>  CALL FUNCTION 'SCMS_BINARY_TO_XSTRING'
    EXPORTING
      input_length = length
      first_line   = 0
      last_line    = 0
    IMPORTING
      buffer       = lv_pic_xstring
    TABLES
      binary_tab   = binary_tab
    EXCEPTIONS
      failed       = 1
      OTHERS       = 2.</pre>
<p>5. Teraz wystarczy tylko zakodować wynik do postaci stringa o podstawie 64bitowej:</p>
<div>
<pre>  CALL FUNCTION 'SSFC_BASE64_ENCODE'
    EXPORTING
      bindata                  = lv_pic_xstring
    IMPORTING
      b64data                  = lv_picture
    EXCEPTIONS
      ssf_krn_error            = 1
      ssf_krn_noop             = 2
      ssf_krn_nomemory         = 3
      ssf_krn_opinv            = 4
      ssf_krn_input_data_error = 5
      ssf_krn_invalid_par      = 6
      ssf_krn_invalid_parlen   = 7
      OTHERS                   = 8.</pre>
</div>
<p>W zmiennej lv_picture mamy ciąg znaków, który możemy wkleić w tag img.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.programistka.eu/blog/lang/pl-pl/2012/02/17/odczyt/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ABAP: poszukiwanie logicznej bazy danych na podstawie nazwy tabeli</title>
		<link>http://www.programistka.eu/blog/lang/pl-pl/2010/05/04/abap-poszukiwanie-logicznej-bazy-danych-na-podstawie-nazwy-tabeli</link>
		<comments>http://www.programistka.eu/blog/lang/pl-pl/2010/05/04/abap-poszukiwanie-logicznej-bazy-danych-na-podstawie-nazwy-tabeli#comments</comments>
		<pubDate>Tue, 04 May 2010 17:30:15 +0000</pubDate>
		<dc:creator>MagdaQ</dc:creator>
				<category><![CDATA[SAP]]></category>
		<category><![CDATA[ABAP]]></category>
		<category><![CDATA[tip]]></category>

		<guid isPermaLink="false">http://www.programistka.eu/blog/?p=146</guid>
		<description><![CDATA[For English please choose the language in the right panel &#8211;&#62; Wychodząc naprzeciw różnym dziwnym potrzebom ABAPerów zamieszczam poniższe. Aby znaleźć logiczną bazę danych posiadając jedynie nazwę tabeli należy skorzystać z transakcji SE36 &#8211; edytor logicznej bazy danych. Wybieramy Dodatki -&#62; Wykorzystanie tabeli i podajemy nazwę tabeli. Rezultatem jest lista logicznych baz danych, które z [...]]]></description>
			<content:encoded><![CDATA[<p><span style="font-size: smaller;" lang="pl-pl"> <em>For English please choose the language in the right panel &#8211;&#62;</em></span><br />
<span lang="pl-pl"><br />
Wychodząc naprzeciw różnym dziwnym potrzebom ABAPerów zamieszczam poniższe.</span></p>
<p><span lang="pl-pl">Aby znaleźć logiczną bazę danych posiadając jedynie nazwę tabeli należy skorzystać z transakcji <strong>SE36</strong> &#8211; edytor logicznej bazy danych. Wybieramy <strong><em>Dodatki -&#62; Wykorzystanie tabeli</em></strong> i podajemy nazwę tabeli. Rezultatem jest lista logicznych baz danych, które z niej korzystają.</span></p>
<p><span lang="pl-pl">I tak np. dla tabeli PERNR otrzymujemy LDB: PNP (Dane podstawowe HR) i PNPCE (Dane podst. HR wraz z równoczesnymi etatami).</span></p>
<p><span lang="pl-pl">Ta wiedza może przydać np. przy eksploracji mało znanych nam modułów ERP, kiedy jednym z niewielu punktów zaczepienia, jakim dysponujemy jest jedna z tabel z danego obszaru. <em><strong>Quick&#38;useful.</strong></em></span></p>




]]></content:encoded>
			<wfw:commentRss>http://www.programistka.eu/blog/lang/pl-pl/2010/05/04/abap-poszukiwanie-logicznej-bazy-danych-na-podstawie-nazwy-tabeli/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pomoc wyszukiwania dla PCHOBJID w raporcie z PNP</title>
		<link>http://www.programistka.eu/blog/lang/pl-pl/2010/02/03/pomoc-wyszukiwania-dla-pchobjid-w-raporcie-z-pnp</link>
		<comments>http://www.programistka.eu/blog/lang/pl-pl/2010/02/03/pomoc-wyszukiwania-dla-pchobjid-w-raporcie-z-pnp#comments</comments>
		<pubDate>Wed, 03 Feb 2010 15:33:49 +0000</pubDate>
		<dc:creator>MagdaQ</dc:creator>
				<category><![CDATA[SAP]]></category>
		<category><![CDATA[ABAP]]></category>
		<category><![CDATA[pch]]></category>
		<category><![CDATA[pnp]]></category>
		<category><![CDATA[searchhelp]]></category>

		<guid isPermaLink="false">http://www.programistka.eu/blog/?p=77</guid>
		<description><![CDATA[Spotkałam się ostatnio z problemem w programie w SAP HR, konkretniej w HR-PA. Piszę aplikację, która w założeniu opiera się na bazie PNP, ale pewna jej funkcjonalność korzysta ze struktury organizacyjnej, czyli z bazy PCH. Wygenerowanie pól ekranu selekcji, takiego jak w programie opartym na bazie PCH nie stanowi większego problemu. Kłopot pojawia się dopiero, [...]]]></description>
			<content:encoded><![CDATA[<p><span lang="pl-pl">Spotkałam się ostatnio z problemem w programie w SAP HR, konkretniej w HR-PA. Piszę aplikację, która w założeniu opiera się na bazie PNP, ale pewna jej funkcjonalność korzysta ze struktury organizacyjnej, czyli z bazy PCH. Wygenerowanie pól ekranu selekcji, takiego jak w programie opartym na bazie PCH nie stanowi większego problemu. Kłopot pojawia się dopiero, kiedy chcemy dodać pomoc wyszukiwania do pola ID obiektu &#8211; standardową dla ekranu selekcji raportu ze struktury. </span><br />
<br />
<span id="more-77"></span><img class="aligncenter" title="Pomoc wyszukiwania dla obiektu OBJID z ekranu selekji PCH" src="/images/f4objid.jpg" alt="Pomoc wyszukiwania dla obiektu OBJID z ekranu selekji PCH" width="558" height="455" /></p>
<p><span lang="pl-pl">Po krótkim google&#8217;owaniu odpowiedź znajduje się np. w tym <a href="http://www.saptechnical.com/Tips/ABAP/F4/ObjID.htm">poście</a>. Krótko mówiąc należy użyć makra rhxmacro dodając poniższe cztery linijki:  <em> </em></span><br />
</p>
<p><span lang="pl-pl"><em>Na początku programu&#8230;</em></span><br />
</p>
<p>INCLUDE rhxmacro.</p>
<p><span lang="pl-pl"><em>&#8230;w sekcji INITIALIZATION&#8230;</em></span><br />
</p>
<p>rhx-f4-objid-data.</p>
<p><span lang="pl-pl"><em>&#8230;i jeszcze&#8230;</em></span><br />
</p>
<p>AT SELECTION-SCREEN ON VALUE-REQUEST FOR so_obj_o-low.</p>
<p>rhx-f4-objid-low pchplvar pchotype so_obj_o &#8221; &#8221;.</p>
<p><span lang="pl-pl">Wszystko byłoby pięknie, gdyby nie to, że w makrze rhxmacro jest błąd powodujący niekompilowanie się kodu (ach, ten SAP..). Ostatnia zmiana wprowadzana przez SAPa jest z marca 2009 roku i wygląda na to, że ktoś wprowadzał zmiany do makra, ale pracy nie skończył. Potem prawdopodobnie z którąś z not &#8216;poprawka&#8217; poszła do użytkowników. Błąd powodujący niekompilowanie się kodu makra jest bardzo prosty &#8211; aby go naprawić należy usunąć jedną linijkę, która próbuje wyczyścić nieistniejącą zmienną (usuniętą w trakcie &#8216;poprawiania&#8217; makra).</span><br />
</p>
<p><span lang="pl-pl">Zatem finalnie, aby móc cieszyć się pięknym search helpem należy utworzyć nowe klienckie makro (niestety) będące poprawioną (już definitywnie) i okrojoną do naszych potrzeb wersją rhxmacro. Kod poniżej. </span><br />
<br />
*INCLUDE ZRHXMACRO</p>
<p>DEFINE RHX-F4-OBJID-DATA.<br />
TABLES PLOGI.<br />
DATA : %F4_REPID LIKE SY-REPID.<br />
DATA : %F4_DYNNR LIKE SY-DYNNR.<br />
DATA : %F4_LINES TYPE I.<br />
DATA : %F4_SUBRC LIKE SY-SUBRC. &#8220;XMK E-MSG<br />
DATA : %F4_T77EO LIKE T77EO.    &#8220;XMK #431960<br />
DATA : BEGIN OF %F4_MACO_TAB OCCURS 1,<br />
PLVAR LIKE PLOG-PLVAR,<br />
OTYPE LIKE PLOG-OTYPE,<br />
OBJID LIKE OBJEC-REALO,<br />
END   OF %F4_MACO_TAB.<br />
DATA : %F4_PCHOBJID_LINES TYPE I.<br />
DATA : %F4_PLVAR LIKE WPLOG-PLVAR.<br />
DATA : %F4_OTYPE LIKE WPLOG-OTYPE.<br />
DATA : %F4_OLD_OTYPE LIKE WPLOG-OTYPE.<br />
DATA : %F4_SEL_OBJECTS    LIKE OBJEC   OCCURS 10 WITH HEADER LINE.<br />
DATA : %F4_MARKED_OBJECTS LIKE HRSOBID OCCURS 10 WITH HEADER LINE.<br />
END-OF-DEFINITION.</p>
<p>DEFINE RHX-F4-OBJID-LOW.</p>
<p>SET EXTENDED CHECK OFF.</p>
<p>%F4_REPID = SY-REPID.<br />
%F4_DYNNR = SY-DYNNR.<br />
DESCRIBE TABLE &#38;3 LINES %F4_LINES.<br />
IF &#38;4 EQ SPACE.<br />
PERFORM CHECK_PLVAR_F4(RHXCHK00) USING &#38;1 %F4_SUBRC.<br />
CHECK %F4_SUBRC = 0.<br />
ENDIF.<br />
IF &#38;5 EQ SPACE.<br />
IF &#38;2 IS INITIAL.<br />
CALL FUNCTION &#8216;ASK_OTYPE&#8217;<br />
EXPORTING<br />
D_OTYPE         = &#38;2<br />
IMPORTING<br />
OTYPE           = &#38;2<br />
EXCEPTIONS<br />
NO_OTYPE_SET    = 2<br />
WRONG_OTYPE_SET = 4.<br />
ENDIF.<br />
ENDIF.<br />
IF SY-DYNNR EQ &#8217;1000&#8242;.<br />
%F4_OLD_OTYPE = &#38;2.<br />
CLEAR:   %F4_MARKED_OBJECTS.<br />
REFRESH: %F4_MARKED_OBJECTS.<br />
%F4_MARKED_OBJECTS-PLVAR = &#38;1.<br />
%F4_MARKED_OBJECTS-OTYPE = &#38;2.<br />
CLEAR %F4_T77EO.<br />
SELECT SINGLE * FROM T77EO INTO %F4_T77EO.<br />
LOOP AT &#38;3 WHERE SIGN = &#8216;I&#8217;.<br />
CASE &#38;3-OPTION.<br />
WHEN &#8216;EQ&#8217;.<br />
%F4_MARKED_OBJECTS-SOBID = &#38;3-LOW.<br />
APPEND %F4_MARKED_OBJECTS.<br />
WHEN &#8216;BT&#8217;.<br />
IF %F4_T77EO IS INITIAL.<br />
SELECT * FROM PLOGI<br />
WHERE OBJID &#62;= &#38;3-LOW  AND<br />
OBJID &#60;= &#38;3-HIGH AND<br />
OTYPE EQ &#38;2      AND<br />
PLVAR EQ &#38;1.<br />
%F4_MARKED_OBJECTS-SOBID = PLOGI-OBJID.<br />
APPEND %F4_MARKED_OBJECTS.<br />
ENDSELECT.<br />
ENDIF.<br />
ENDCASE.</p>
<p>ENDLOOP.<br />
CALL FUNCTION &#8216;RH_OBJID_REQUEST&#8217;<br />
EXPORTING<br />
PLVAR             = &#38;1<br />
OTYPE             = &#38;2<br />
DYNPRO_REPID      = %F4_REPID<br />
DYNPRO_DYNNR      = %F4_DYNNR<br />
DYNPRO_PLVARFIELD = &#38;4<br />
DYNPRO_OTYPEFIELD = &#38;5<br />
SET_MODE          = &#8216;X&#8217;<br />
IMPORTING<br />
SEL_PLVAR         = %F4_PLVAR<br />
SEL_OTYPE         = %F4_OTYPE<br />
TABLES<br />
SEL_OBJECTS       = %F4_SEL_OBJECTS<br />
MARKED_OBJECTS    = %F4_MARKED_OBJECTS<br />
EXCEPTIONS<br />
CANCELLED         = 1<br />
WRONG_CONDITION   = 2<br />
NOTHING_FOUND     = 3<br />
ILLEGAL_MODE      = 4<br />
INTERNAL_ERROR    = 5<br />
OTHERS            = 6.<br />
IF &#38;5 NE SPACE AND<br />
%F4_OLD_OTYPE NE %F4_OTYPE.<br />
REFRESH &#38;3.<br />
ENDIF.<br />
IF SY-SUBRC EQ 0.<br />
REFRESH: &#38;3.<br />
CLEAR:   &#38;3.<br />
LOOP AT %F4_SEL_OBJECTS.</p>
<p>&#38;3-LOW    = %F4_SEL_OBJECTS-REALO.<br />
&#38;3-OPTION = &#8216;EQ&#8217;.<br />
&#38;3-SIGN = &#8216;I&#8217;.<br />
APPEND &#38;3.</p>
<p>ENDLOOP.<br />
CLEAR:   %F4_SEL_OBJECTS.<br />
REFRESH: %F4_SEL_OBJECTS.<br />
else.                                             &#8220;Note1265523<br />
clear: %f4_sel_objects, %f4_sel_objects[].<br />
clear: %f4_marked_objects, %f4_marked_objects[].<br />
clear: &#38;3-low, &#38;3[].<br />
ENDIF.<br />
ELSE.<br />
PERFORM OBJID_REQUEST_PLVAR_OTYPE<br />
USING SPACE &#38;1   &#38;2<br />
%F4_REPID  %F4_DYNNR<br />
SPACE      SPACE<br />
%F4_PLVAR  %F4_OTYPE<br />
&#38;3-LOW.<br />
IF &#38;4 NE SPACE.<br />
&#38;1 = %F4_PLVAR.<br />
ENDIF.<br />
IF &#38;5 NE SPACE.<br />
&#38;2 = %F4_OTYPE.<br />
ENDIF.<br />
EXIT.<br />
ENDIF.<br />
DESCRIBE TABLE &#38;3 LINES %F4_PCHOBJID_LINES.<br />
IF %F4_PCHOBJID_LINES GT %F4_LINES.<br />
IF %F4_LINES EQ 0.<br />
MESSAGE S026(PP).<br />
ELSE.<br />
MESSAGE S027(PP).<br />
ENDIF.<br />
ELSE.<br />
ENDIF.<br />
******CLEAR : SUBRC. &#60;&#8212; <span lang="pl-pl">to linijka, którą należy usunąć z oryginalnego makra</span><br />
READ TABLE &#38;3 INDEX 1.<br />
IF SY-SUBRC GT 0.<br />
CLEAR &#38;3.<br />
ENDIF.<br />
IF &#38;4 NE SPACE.<br />
&#38;1 = %F4_PLVAR.<br />
ENDIF.<br />
IF &#38;5 NE SPACE.<br />
&#38;2 = %F4_OTYPE.<br />
ENDIF.<br />
SET SCREEN SY-DYNNR.<br />
LEAVE SCREEN.</p>
<p>SET EXTENDED CHECK ON.</p>
<p>END-OF-DEFINITION.</p>
<p><span lang="pl-pl">Swoją drogą to nadaje się do zgłoszenia developerom z SAPa.</span><br />
</p>
]]></content:encoded>
			<wfw:commentRss>http://www.programistka.eu/blog/lang/pl-pl/2010/02/03/pomoc-wyszukiwania-dla-pchobjid-w-raporcie-z-pnp/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>s-community-owana</title>
		<link>http://www.programistka.eu/blog/lang/pl-pl/2009/11/22/s-community-owana</link>
		<comments>http://www.programistka.eu/blog/lang/pl-pl/2009/11/22/s-community-owana#comments</comments>
		<pubDate>Sun, 22 Nov 2009 00:51:23 +0000</pubDate>
		<dc:creator>MagdaQ</dc:creator>
				<category><![CDATA[SAP]]></category>
		<category><![CDATA[Luźne refleksje]]></category>
		<category><![CDATA[community]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[społeczności]]></category>

		<guid isPermaLink="false">http://www.programistka.eu/blog/?p=51</guid>
		<description><![CDATA[Społeczności internetowe &#8211; ostatnio zaczynam odkrywać potencjał drzemiący pod tym coraz częściej używanym wyrażeniem. I nie chodzi mi tutaj bynajmniej o społeczności znane i popularne, takie jak nasza-klasa, grono, facebook, nawet nie goldenline, czy linkedin. Warto przyjrzeć się tym, które wydają się być najciekawsze i są więcej niż tylko czystą rozrywką &#8211; zrzeszające developerów, programistów, [...]]]></description>
			<content:encoded><![CDATA[<p><span lang="pl-pl">Społeczności internetowe &#8211; ostatnio zaczynam odkrywać potencjał drzemiący pod tym coraz częściej używanym wyrażeniem. I nie chodzi mi tutaj bynajmniej o społeczności znane i popularne, takie jak nasza-klasa, grono, facebook, nawet nie goldenline, czy linkedin. Warto przyjrzeć się tym, które wydają się być najciekawsze i są więcej niż tylko czystą rozrywką &#8211; zrzeszające developerów, programistów, konsultantów i szerokie <strong>kręgi IT</strong>.</span></p>
<p><span lang="pl-pl">Na początek: <a href="http://www.ms-groups.pl">Microsoft Groups</a> w wydaniu z nazego podwórka, czyli po polsku. Tak naprawdę każdy użytkownik, programista, czy też pasjonat technologii MS znajdzie tu coś dla siebie &#8211; dla każdego coś miłego. Ja zaczęłam od &#8211; jakżeby inaczej &#8211; <a href="http://www.ms-groups.pl/wit/">Women in Technology</a> i już pierwsze spotkanie, w którym miałam przyjemność uczestniczyć nastroiło mnie bardzo pozytywnie. Miło, gdy kobiety na co dzień współpracujące głównie z mężczyznami spotykają się w gronie innych kobiet mających podobne zainteresowania i problemy. Zdecydowanie popieram! I wybieram się na kolejne spotkanie.</span></p>
<p><span lang="pl-pl">Nie sposób nie wspomnieć także o <a href="http://www.msdn.pl">Microsoft Developer Network</a>, czyli po prostu o MSDN. Kopalnia wiedzy i informacji. Blogi, artykuły, pomoc, publikacje i mnóstwo innych.</span></p>
<p><span lang="pl-pl">Wygląda na to, że duże korporacje IT działają na wielu płaszczyznach podobnie zatem pojawia się pytanie: czy tylko gigant z Redmond przejawia takie inicjatywy? Z mojego punktu widzenia, w naturalny sposób uwaga kieruje się na SAP. Z całkiem niezłym efektem: <a href="http://www.sdn.sap.com">SAP Developer Network</a>, czyli SDN. Zbieżność nazw nie jest przypadkowa, zatem najbardziej można go porównać z Microsoft&#8217;owym MSDN&#8217;em. Co prawda brakuje między innymi typowych społeczności offline&#8217;owych, ale jak na firmę o dużo węższym spektrum produktów niż MS &#8211; jest co najmniej nieźle. Nie mówiąc o tym, że zna go każdy szanujący się developer, czy konsultant SAP.</span></p>
<p><span lang="pl-pl">Wygląda na to, że korporacje IT nauczyły się wspierać programistów i zaawansowanych użytkowników swoich produktów w bardzo prosty sposób &#8211; nimi samymi. Udostępniając serwisy wspomagające dzielenie się wiedzą i umiejętnościami, a także kontaktami i znajomościami. Popierając społeczności online i offline. Organizując konferencje (patrz: <a href="http://www.microsoft.com/europe/TechEd/">Microsoft TechEd</a> oraz <a href="http://www.sdn.sap.com/irj/scn/sapteched">SAP TechEd</a> &#8211; zbieżność nazw znowu nie wydaje się przypadkowa ;)). Oczywiście z drugiej strony, to wspaniałe pole do poszukiwania nowych, utalentowanych i w dodatku idealnych (bo kochających to, co robią) potencjalnych pracowników. Pytanie, kto tak naprawdę bardziej na tym korzysta &#8211; firma, czy programista-pasjonat &#8211; pozostaje otwarte.</span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.programistka.eu/blog/lang/pl-pl/2009/11/22/s-community-owana/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

