Arquivo da categoria ‘Sql’

Você gerencia os seus projetos de desenvolvimento em um único ambiente integrado em tempo real? O Team Development encarrega-se especialmente do desenvolvimento da equipe e facilita a gestão do processo de desenvolvimento de aplicações. É uma ferramenta completa para gerenciar seu time de desenvolvedores, além de rastrear recursos, executar tarefas, marcar etapas, gerenciar os erros e muito mais. Através de comentários se obtém o feedback do usuário e, em seguida, pode-se classificar os comentários de usuários como recursos, para realizar novas tarefas e ou correção de erros. O Team Development possui cinco ferramentas com vários recursos para lhe ajudar a manter seus projetos e sua equipe de desenvolvimento.

Team Developement

  1. Features – Possibilita a criação de novas características da aplicação e também rastrear as funcionalidade da sua aplicação desde a concepção inicial até a implementação. Os recursos podem ser organizados pela liberação, atribuídos a desenvolvedores, etiquetados, associado a marcos e etc.
  2. Milestones – São marcos, permitem a marcação e o acompanhamento de eventos. recursos, erros, e lista de tarefas.
  3. To Dos – Criam tarefas e são nada mais que itens de ação que podem ser atribuídos, priorizados, marcados e controlados.
  4. Bugs – São itens criados para controlar defeitos de software. Erros podem ser atribuídos, associados à marcos, e acompanhados por data de vencimento, status e vários outros atributos.
  5. Feedback – São ligações ou sugestões que podem ser incorporadas em aplicações declarativas via entrada pela barra de navegação, ou codificação de um link. Usuários que executam uma aplicação podem, então, fornecer feedback, os usuários com acesso ao módulo de desenvolvimento da equipe dentro do Oracle Application Express podem gerenciar os feedbacks. O feedback pode ser convertido em um bug, em uma tarefa, uma entrada ou uma nova característica.

 Utilizando o Team Development

O Apex conta com o conceito de usuários e grupos, os usuários são divididos em três categorias, os administradores que podem criar e modificar aplicações e objetos do banco de dados, os desenvolvedores que podem modificar aplicações e objetos do banco de dados e o usuários finais que não possuem privilégios de desenvolvimento, podem apenas acessar aplicações que não utilizam autenticação de um esquema externo. Todos os usuários estão integrados e podem ser geridos a partir do Team Developer.

Para a introdução a está ferramenta vamos utilizar o conceito de tarefas no qual é muito semelhante ao uso do popular MS Project, onde o gerente de projeto pode criar as clássicas tarefas com a porcentagem do andamento, tempo estimado de execução e atribui-las a determinado recurso, porem no Team Development não trabalhamos em uma planilha Standalone que é compartilhada e sim em um ambiente online totalmente integrado que dispensa o uso de ferramentas externas.

1 – Acesse o menu Team Development e clique em To Dos:

Team Development

Team Development

2 – Clique em Create To Do para criar uma nova tarefa:

Tarefas

Tarefas

3 – Uma tarefa consiste em vários itens como, a ação da tarefa, a quem a tarefa esta associada, o colaborador da tarefa, data de inicio, data estimada de termino e data do termino da tarefa:

Ação da Tarefa

Ação da Tarefa

4 – Rolando a pagina mais abaixo encontramos os detalhes da tarefa como, versão, categoria, descrição, contexto da aplicação e pagina:

Detalhes da tarefa

Detalhes da tarefa

5 – Mais abaixo se encontra, o marco da tarefa se estiver associado a um, as características da tarefa se estiver associada a uma, as etiquetas da tarefa e a estimativa de horas para a realização da tarefa.

Contexto e Estimativas

Contexto e Estimativas

6 – Logo após a tarefa ser criada você pode gerencia-la como desejar, pode ainda se obter vários tipos de visualizações da lista de tarefas como por exemplo, em um calendário:

Lista de Tarefas

Lista de Tarefas

O Team Development é uma poderosa e completa ferramenta on-line para gerenciamento de todas as etapas do seu projeto, possibilitando interação com todos os tipos de usuários em tempo real. Para saber mais sobre o Team Development clique aqui.

Para acessar o post anterior clique aqui.

 

Publicidade

O SQL WorkShop nos possibilita através de seu menu de utilidades importar e exportar dados no formato texto, XML ou no formato de planilhas. O processo ocorre através de Wizards que guia o desenvolvedor passo a passo, navegando através de suas opções.

Para importar os dados vamos utilizar um arquivo texto separado pelo caractere “|” (pipe) e o marcador de ponto decimal correspondente ao idioma utilizado no computador, neste caso pt-br, você encontra o arquivo logo abaixo.

Importando Dados de um Arquivo Texto: Data Workshop

1 – Antes de importar os dados precisamos ter certeza que os objetos do banco de dados estão funcionando corretamente, como vimos no post anterior, possuímos 3 objetos interligados, eles são uma tabela, uma sequencia que cria números sequenciais para os identificadores da tabela e uma Trigger que alimenta os identificadores. No menu SQL Command insira uma linha de testes com o identificador nulo para testar os objetos do banco de dados, depois apague a linha, utilize a imagem abaixo para referencia:

SQL Command - Testa Objetos

SQL Command – Testa Objetos

2 – No menu SQL WorkShop clique em Utilities->Data WorkShop:

Utilities

Data Workshop

3 – Escolha a opção Text Data para importar um arquivo de texto:

Text Data

Text Data

4 – Na opção Load To escolha importar os dados para uma tabela existente:

Opções de Importação

Opções de Importação

5 – Escolha um esquema do banco de dados para o seu Workspace:

Esquema

Esquema

6 – Escolha a tabela em que deseja importar os dados:

Tabela

Tabela

7 – Está é a janela de parâmetros e é muito importante, você precisa escolher o arquivo que deseja importar seguido do delimitador que separa os campos, você precisa escolher o caractere responsável pelos marcação de texto, no caso aspas. Logo em seguida desmarcar a opção chamada  “A primeira linha contem o nome das colunas”, já que não utilizamos colunas no arquivo texto, somente o conteúdo de dados:

Parâmetros da Importação

Parâmetros da Importação

8 – Nesta tela o Wizard identificou que as colunas da tabela não batem com a quantidade de colunas do nosso arquivo texto, não se preocupe, isto é porque a sequencia e a Trigger irão criar os identificadores para o campo ID do funcionário. Você precisa identificar as colunas para cada tipo de dados no texto:

Mapeando as colunas

Mapeando as colunas

9 – Após terminar de mapear as colunas, clique em Carregar Dados, os dados serão importados e os resultados serão exibidos por cada linha do arquivo caso houver erros. Atente-se ao padrão do ponto decimal para os campos do tipo Number. Tem uma manha ai! Se você utilizar um campo numérico pelo SQL Command e tentar inserir um Number como fizemos no primeiro passo deste post, o caractere marcador do ponto decimal é “.” (ponto), quando você utiliza pelo Wizard, você está utilizando dados no contexto da sua língua nativa, no nosso caso Pt-br então o marcador de decimal precisa ser “,” (virgula).

Dados Importados com Sucesso!

Dados Importados com Sucesso!

10 – Para verificar os dados ainda no SQL Workshop clique em Object Browser, selecione a tabela e escolha a opção Data:

Object Browser

Object Browser

Exemplo:

Neste exemplo criamos uma tabela de funcionários no qual vamos contratar alguns músicos para um concerto de rock, vamos alimentar os dados através de um arquivo texto com os campos separados pelo caractere pipe. Crie um arquivo texto com os dados abaixo no qual serão utilizados para a importação.

Para o post anterior clique aqui.

TXT

dados.txt

"Axl"|"Rose"|"Vocalista"|2234,56
"Eddie"|"Vedder"|"Vocalista"|2134,56
"Stone"|"Gossard"|"Guitarrista"|1534,12
"Jerry"|"Cantrell"|"Guitarrista"|1634,10
"Kim"|"Thayil"|"Guitarrista"|1467,98
"Michael"|"Peter Balzary (Flea)"|"Baixista"|1334,22
"Taylor"|"Hawkins"|"Baterista"|2210,59

O SQL Workshop fornece varias ferramentas que permitem visualizar e gerenciar os objetos do banco de dados através de Wizards, tornando fácil para o desenvolvedor criar toda a modelagem de dados de suas aplicações, o único requisito para uma modelagem perfeita é que o desenvolvedor conheça os conceitos do banco de dados Oracle e todos os seus recursos.

O SQL Workshop é divido em cinco ferramentas principais, elas são:

  1. Object Browser – permite que você navegue, crie e manipule qualquer objeto do banco de dados dentro do workspace da aplicação, como Tables, Views, índices, packages, sequences, tipos e todos os outros objetos do Oracle Database.
  2. SQL Commands – permite que você execute instruções SQL direto de seu navegador.
  3. SQL Scripts – permite que você efetue um upload de arquivos contendo scripts PL/SQL e os execute no banco de dados conectado ao seu workspace.
  4. Query Builder permite que você crie consultas graficamente, arrastando tabelas e exibições em um painel. Os Joins podem ser definidos arrastando e soltando nomes das respectivas colunas.
  5. Utilities – permitem que você execute vários outros procedimentos uteis no workspace de sua aplicação, como: subir dados de arquivos textos, criar DDL para os objetos do seu esquema, manusear a lixeira do seu workspace, monitorar as atividades de seu workspace entre varias outras.

Criando o Bando de dados de Sua Aplicação

Vamos primeiramente criar os objetos para nossa aplicação utilizando um script SQL em um arquivo que contem, uma tabela, uma sequence e uma trigger.

1 – Acesse o workspace da sua aplicação e clique em SQL Workshop->SQL Scripts, em seguida clique em upload selecione o arquivo contendo seus scripts SQL e clique em upload novamente para subir o arquivo para o servidor do Oracle APEX:

Upload - SQL Scripts

Upload – SQL Scripts

2 – Clique em Run Now para executar os scripts SQL em seu arquivo, na linha de seu arquivo clique no ícone da coluna RUN para rodar os scripts. Após a execução dos scripts clique em View Results para saber se tudo correu corretamente:

Run Now

Run Now

3 – Com os objetos criados com sucesso em seu workspace, para visualizar ou editar seus objetos utilize a opção Object Browser e navegue pelos seus objeto:

Object Browser

Object Browser

Pronto! você já possui os objetos de dados para criar uma aplicação APEX, para saber mais sobre como criar aplicações utilizando o Oracle Application Express veja o próximo post desta série.

Para acessar o post anterior da série: clique aqui.

SQL

Salve  estes scripts em um arquivo de extensão sql para efetuar um upload para seu banco de dados.

PL/SQL – arquivo SQL – sql0001.sql

-- cria tabela
create table Funcionarios(
  ID_Funcionario  NUMBER(5),
  Nome            VARCHAR2(30),
  Sobrenome       VARCHAR2(70),
  Cargo           VARCHAR2(30),
  Salario         NUMBER(9,2),
  CONSTRAINT	pk_ID_Funcionario PRIMARY KEY (ID_Funcionario)
  );

-- Cria sequencia
CREATE SEQUENCE ID_Funcionario_seq START WITH 1;

-- Cria Trigger
CREATE OR REPLACE trigger BI_Funcionarios
  before insert on Funcionarios
  for each row
begin
  if :NEW.ID_Funcionario is null then
    select ID_Funcionario_seq.nextval into :NEW.ID_Funcionario from dual;
  end if;
end;

O Oracle Application Express (APEX) é um ambiente de desenvolvimento de software baseado na web que roda em um banco de dados Oracle. O APEX vem como padrão em todas as edições banco de dados Oracle, à partir do Oracle 11g, é instalado por padrão como parte do núcleo do banco de dados.

As aplicações Apex podem ser executadas no Oracle Express Edition, o banco de dados livre (XE) da Oracle com limite de 11 GB de dados e uma CPU, a Oracle também fornece hospedagem gratuita de aplicações demos em um workspace criado por você em uma conta gratuita da Oracle.

O APEX foi desenhado para construir aplicações web complexas que podem ser usadas na maioria dos navegadores modernos. O ambiente de desenvolvimento APEX também é baseado em browser. O APEX possui varias vantagens por ser parte do núcleo do banco de dados Oracle, por exemplo, os DBAs já familiarizado com PL/SQL podem usar o seu conjunto de habilidades para desenvolver aplicações web usando o conceito de criação de maquetes utilizando temas pré-construídos. Com a fácil implementação e sua arquitetura o usuário final somente precisa abrir uma URL para acessar um aplicativo APEX que pode ser implantado em laptops, servidores autônomos, ou instalações do Oracle RAC.

Configurando uma Conta APEX

Para utilizar o APEX precisamos de um banco de dados Oracle igual ou superior a versão 11g, escolhemos a versão livre do Oracle chamada Oracle XE 11g R2, caso ainda não tenha instalado o Oracle em seu computador, utilize o walkthrough para seu sistema operacional:

Oracle XE – Windows : Oracle XE 11g

Oracle XE – Linux: Oracle XE 11g

1 – Abra  no seu navegador a interface de administração do Oracle utilizando o respectivo ícone “Conceitos Básicos” instalado no menu de sua interface gráfica:

Oracle - Interface de Administração Web

Oracle – Interface de Administração Web

2 – Clique no menu Application Express e entre com o usuário SYSTEM e a senha configurada na instalação do banco de dados:

SYSTEM

SYSTEM

3 – O APEX possui um ambiente rápido de desenvolvimento completo e seu conceito é baseado em Workspaces, ou seja para cada Workspace você pode ter vários usuários desenvolvendo aplicações em diferentes esquemas do banco de dados Oracle. Para cada Database User você precisa definir um Workpace e uma senha:

Database User - Workspace - Password

Database User – Workspace – Password

4 – Após seu Workpace ser criado com sucesso, um link será exibido para que você possa acessa-lo diretamente:

Workspace criado com sucesso

Workspace criado com sucesso

5 – Efetue um Login no seu Workspace para acessar a IDE de desenvolvimento de aplicações do APEX:

Workspace - Login

Workspace – Login

6 – Pronto! Você já esta conectado em seu Workspace e pronto para criar aplicações web direto do seu navegador utilizando o banco de dados Oracle:

Oracle Application Express

Oracle Application Express

O APEX é uma suíte completa de desenvolvimento Oracle para WEB utilizando PL/SQL, para saber mais sobre como criar aplicações utilizando o Oracle Application Express veja todos os post desta série.

O Oracle SQL Developer é uma versão gráfica do SQL * Plus que dá aos desenvolvedores de banco de dados uma maneira conveniente para executar tarefas básicas. Você pode conectar a qualquer destino do Oracle Database XE utilizando esquema de banco de dados padrão do Oracle. Uma vez conectado, você pode executar operações em objetos na base de dados.

Oracle SQL Developer Download: SQL Developer.

Instalando o Oracle SQL Developer no Linux openSuse

Para instalar o Oracle SQL Developer na distribuição Linux openSuse precisamos nos atentar a alguns detalhes, o primeiro é a versão do JDK, o JDK 8_25 ainda não é suportado por está versão do SQL Developer, para garantir uma instalação bem sucedida é recomendado instalar o JDK 7. Um outro detalhe é a interface GNOME, em alguns casos você pode encontrar um erro ao tentar iniciar o Oracle SQL Developer, use o comando abaixo se encontrar um erro na inicialização do SQL Developer na interface gráfica GNOME:

unset -v GNOME_DESKTOP_SESSION_ID

Instalando e Configurando o Oracle SQL Developer

Baixe o JDK 7 em seu computador utilizando o seguinte link, Oracle OpenJDK 7 tenha certeza que escolheu a opção correta, o openSuse utiliza pacotes do tipo RPM.

1 – Digite o seguinte comando no terminal do Linux :

rpm -Uhv sqldeveloper-4.0.3.16.84-1.noarch.rpm
Instalando o SQL Developer

Instalando o SQL Developer

2 – Após a instalação digite no terminal: sqldeveloper e o programa se inicializará, na primeira inicialização ele irá pedir o caminho do JDK do seu computador, o caminho é parecido com este exemplo: /usr/java/jdk1.7.0_71, após digitar o caminho do seu computador, tecle enter e o SQL Developer irá inicializar:

Oracle SQL Developer

Oracle SQL Developer

3 – Na janela de conexões clique no sinal de mais (+) para criar uma nova conexão. Em sua primeira conexão, conecte-se com o usuário system e a senha da sua instalação do Oracle:

Conexão Oracle

Conexão Oracle

4 – O banco de dados Oracle possui o conceito de Database User, isto significa que você precisa criar pelo menos um usuário para que seja o proprietário dos objetos que você pretende criar, expanda a pasta de usuários e com o botão direito crie um novo usuário:

Novo Usuário

Novo Usuário

5 – Após digitar um nome e uma senha clique na aba de atribuições concedidas e o atribua como DBA, por enquanto vamos criar somente estas configurações, clique em aplicar e feche a janela:

DBA

DBA

6 – Agora não precisamos mais da conexão feita pela usuário System, podemos nos desconectar e criar uma nova conexão utilizando o usuário que acabamos de criar. Efetue este procedimento e teste o banco de dados com o script que você encontra logo abaixo:

Testando o Database User

Testando o Database User

Importante:

Este post foi escrito para a interface gráfica Gnome do openSuse, caso utilize a KDE você deve substituir o aplicativo GEdit pelo KWrite, e quando chamar um aplicativo com GUI da linha de comando substituir o comando sudo por kdesu.

Use os scripts abaixo para testar sua conexão e seu novo Database User:

PL/SQL

-- Cria tabela
CREATE TABLE "DABERTO"."TABELATESTE" 
   (	"IDENTIFICADOR" NUMBER(10,0), 
	"NOME" VARCHAR2(30 BYTE), 
	"SOBRENOME" VARCHAR2(70 BYTE), 
	"CARGO" VARCHAR2(30 BYTE), 
	"SALARIO" NUMBER(9,2)
   );
   
   -- Insere dados na tabela
   INSERT INTO TABELATESTE
   VALUES (1, 'Oracle XE', 'openSuse', 'Desenvolvimento Aberto', 1234.56);
   
   -- Seleciona dados na tabela
   SELECT * FROM TABELATESTE;

 

O Oracle Database XE, oferece o Oracle 11g Release 2 livre para distribuição nas plataformas Windows e Linux. O suporte para esta versão é feito exclusivamente através de fóruns on-line. O Oracle 11g Express Edition, lançado em 24 de setembro de 2011, pode suportar 11 GB de dados do usuário. O Oracle Database XE é fácil de instalar e oferece um banco de dados Oracle e ferramentas para gerenciamento.

Oracle XE Download: Oracle Database Express Edition x64 – Linux

Instalando o Oracle XE no Linux openSuse

Oracle disponibiliza os pacotes da ultima versão de seu banco de dados livre apenas no formato RPM, e segundo os requerimentos do sistema no qual o Oracle XE pode ser instalado, as distribuições do Linux são: Oracle, RedHat e Suse todos na versão Enterprise, porem podemos também instalar o Oracle em versões gratuitas destas distribuições, também é possível instalar o Oracle em outros sistemas Linux que não utilizam pacotes do tipo RPM, necessitando apenas converte-los para o formato do pacote da distribuição desejada.

Instalar o Oracle XE é relativamente fácil, entretanto você precisa seguir os requisitos necessários para uma instalação sem erros, o primeiro é o tamanho do Swap do Linux, é necessário no mínimo 2048 MB ou 2 GB, o mais importante é o nome do seu computador, não pode ter caracteres especiais como “.” (ponto) ou “-” traço”, talvez você precise renomear seu computador especialmente se estiver utilizando em uma maquina virtual.

Documentação Oficial: Instalação Linux.

Checando Requisitos e Instalando

1 – Precisamos saber se você tem os requisitos necessários, vamos começar pelo nome do seu computador, caso já possua um nome adequado pule este passo. Abra como root o programa GEdit e localize o arquivo chamado HOSTNAME na pasta /etc e altere o nome do seu host para um nome adequado sem pontos ou traços:

Hostname

Hostname

2 – Precisamos também alterar nosso arquivo hosts para que o Oracle consiga resolver o nome em questão, principalmente se pretender utilizar o Oracle em uma maquina virtual, abra o GEdit como usuário root e localize o arquivo Hosts na pasta /etc e insira uma linha com o IP local e nome do computador:

Hosts

Hosts

3 – Você precisa garantir que o openSuse possui o tamanho do Swap correto, se você instalou o sistema operacional com os padrões default do instalador o seu Swap está menor do que o necessário por apenas alguns kilobytes de tamanho, efetue este procedimento para aumentar o Swap em 1024 MB e garantir a instalação:

su
dd if=/dev/zero of=/root/myswapfile bs=1M count=1024
mkswap /root/myswapfile
swapon /root/myswapfile

4 – Se precisou efetuar a troca de nome do seu host, reinicie seu computador. Com o computador já reinicializado este é o ultimo requisito para instalar o Oracle, algumas distribuições do Linux não contem o diretório necessário em que o Oracle efetua um Touch para subir o Listner, precisamos cria-lo manualmente, não se preocupe este diretório é temporário e será excluído posteriormente:

sudo md /var/lock/subsys/listener

5 – Após o download do arquivo RPM do Oracle, descompacte-o, entre na pasta chamada Disk1 e utilize a seguinte linha de comando para a instalação:

rpm -ivh oracle-xe-11.2.0-1.0.x86_64.rpm
Instalando o Oracle XE

Instalando o Oracle XE

6 – Após a instalação inicie a configuração do Oracle utilizando a linha de comando a seguir, deixe todos os parâmetros padrões por enquanto e crie uma senha para o sistema:

/etc/init.d/oracle-xe configure
Configuração Oracle XE

Configuração Oracle XE

7 – Agora vamos configurar a variável de ambiente para o Oracle, iniciar o servidor e para testar vamos abrir o Sqlplus e conectar com o usuário do sistema. Digite os comandos abaixo.

Para abrir o Sqlplus você pode simplesmente digitar seu nome na busca do sistema openSuse e o ícone automaticamente aparecerá para você. Abra-o e digite connect, em seguida digite o usuário system e a senha que você configurou na instalação para se conectar:

cd /u01/app/oracle/product/11.2.0/xe/bin
./oracle_env.sh
/etc/init.d/oracle-xe start
Sqlplus

Sqlplus

8 – Pronto, o Oracle XE já está instalado e funcionando corretamente, você pode iniciar o gerenciador pelo ícone chamado conceitos básicos do Oracle que você encontra nas ferramentas do menu do openSuse:

Conceitos Básicos

Conceitos Básicos

Para saber mais sobre o Oracle XE você pode utilizar nossos exemplos para Linux ou ainda instalar uma ferramenta livre de administração e programação com interface gráfica chamada Oracle SQL Developer.

Importante:

Este post foi escrito para a interface gráfica Gnome do openSuse, caso utilize a KDE você deve substituir o aplicativo GEdit pelo KWrite, e quando chamar um aplicativo com GUI da linha de comando substituir o comando sudo por kdesu.

O SAP R/3 possui um conceito de clientes definidos por diferentes cenários dentro de um sistema SAP, cada cliente possui um proposito exclusivo e por padrão alguns destes clientes são configurados durante a instalação do R/3, é possível que um implementador configure seus próprios clientes a partir da configuração padrão.

Basicamente todos os objetos e dados que pertencem a um cliente estão contidos dentro do banco de dados do SAP, entre as milhares de tabelas do sistema, estão todas as configurações necessárias para que o sistema funcione corretamente e é onde também estão as configurações customizadas de cada implementação, incluindo tabelas, dados, programas, funções, classes entre outros.

NetWeaver 7

O NetWeaver 7 roda sobre o banco de dados da SAP chamado NSP, e por padrão possui os esquemas DOMAIN, SAPNSP, SUPERDBA, SYSINFO, possui índices, Stored Procedures, Sinônimos, mas não possui Triggers, é comum sistemas de grande porte não utilizarem Triggers estas são consideradas armadilhas por muitos DBAs, por gerar erros desnecessários e minimizar a velocidade do sistema já que normalmente tratam registro a registro até os procedimentos de dados em massa, mesmo as IDEs de programação SQL de hoje mudaram a localização do node de Triggers em sua interface, pois antes costumavam ficar junto com as tabelas e eram facilmente esquecidas na hora da programação as tornando muitas vezes invalidas.

Cliente 000

O cliente 000 é o cliente SAP standard, que quando uma nova versão é instalada, SAP atualiza automaticamente: os conteúdos e estruturas de tabelas, os programas, as telas, os formulários, a ajuda on-line e outros objetos e dados do sistema SAP. Este cliente sempre tem o status atual padrão e você pode transferir as configurações padrão do cliente 000 para um outro cliente. O cliente 000 não é um cliente de trabalho e sim de configuração inicial do sistema.

Por padrão os dados de exemplo do NetWeaver 7 e este conjunto de tabelas e dados é chamado Flight Model estão armazenados dentro do cliente 000 e precisa ser transportado para um cliente por exemplo de DEV ou SANDBOX para poder ser utilizados corretamente. Neste post não vamos importar os dados definitivamente, o objetivo é entender como funciona o armazenamento de dados dentro de um cliente.

Para informação adicional sobre os clientes do sistema SAP clique aqui.

Mandante

O mandante é o nível máximo da hierarquia no sistema SAP, as especificações feitas, ou os dados entrados neste nível são válidos para todas as empresas e para todas as outras estruturas organizacionais. Portanto, é necessário fazer essas especificações, ou entrar com esses dados somente uma vez. Isto assegura a consistência dos dados.

Os usuários devem entrar com uma chave de mandante quando fazem o logon no sistema SAP. Isto define o mandante em que eles pretendem trabalhar. Todas as entradas feitas são salvas por mandante. Processamento e analise de dados são também executados por mandante. Um mandante contem a unidade comercial, organizacional e tecnicamente auto-contida em um sistema SAP. Os mandantes têm os seus próprios registros mestre e conjuntos de tabelas. A definição de unidade organizacional mandante é obrigatória.

Na pratica o mandante é um campo chave existente em quase todas as tabelas do banco de dados do sistema SAP. Existem transações que contem programas que manipulam configurações entre clientes, este programas visam manter consistência de configuração e dados de todo o sistema SAP, quando se manipula requisitos de transportes de um cliente para o outro.

Workaround Para Transportar Dados

Você NUNCA deve executar este tipo de procedimento em um sistema SAP a não ser que esteja utilizando uma cópia de estudos. É possível fazer o transporte diretamente no banco de dados usando simples instruções SQL, mas para isso você deve conhecer a modelagem de dados principalmente no que se refere as chaves estrangeiras.

A seguir vamos mostrar como funciona realmente o conceito de mandantes e como os dados são passados de um cliente para o outro.

1-  Primeiro você precisa de um acesso de DBA e uma ferramenta de SQL do banco de dados utilizado pelo seu sistema SAP, em nosso caso estamos usando o SAP MaxDB e o SQL Studio. Vamos efetuar um comando básico na tabela de exemplo do Flight Model do NetWeaver 7, chamada SCARR e poderemos ver que os dados estão contidos apenas no mandante padrão que é o cliente 000.

Dados - Mandante 000

Dados – Mandante 000

2 – No dicionário de dados na transação SE11, podemos ver a estrutura da tabela SCARR, a mesma que esta aberta no Studio SQL, porem no sistema R/3 estamos logados no mandante 001 e como podemos ver na tabela acima não existe dados para o campo MANDT para o cliente 001.

SCARR - Estrutura

SCARR – Estrutura

3 – Quando tentamos verificar o conteúdo da tabela SCARR sobre o mandante 001 o sistema acusa corretamente que não existe dados.

SCARR - Dados - 001

SCARR – Dados – 001

4 – Para transportar os dados para o mandante 001 basta utilizar uma instrução SQL básica contendo um comando INSERTSELECT com um alias no campo mandante, visto que é preciso respeitar a ordem da proteção referencial do banco de dados sobre as chaves estrangeiras contidas na tabela, esta tabela por ser uma tabela pai não possui uma chave estrangeira atrelada a ela.

Transporte - Insert...Select

Transporte – Insert…Select

5 – Após as rows serem duplicadas com sucesso você pode verificar usando uma instrução Select.

Dados Transportados

Dados Transportados

6 – Agora você pode verificar o conteúdo da tabela SCARR dentro do mandante 001 no qual estávamos logados e os dados serão encontrados.

Mandante 001 - Dados

Mandante 001 – Dados

OBS: Existem ferramentas especificas para transporte entre os clientes, este método pode ser utilizado somente a nível de estudo, em um ambiente empresarial você esta sujeito aos termos de garantia do sistema SAP.

 

 

Database – SAP MaxDB – SQL Studio

Publicado: 22 de maio de 2014 em Abap, Sql

MaxDB é  um banco de dados baseado em SQL-92  compatível com o sistema de gestão de dados relacional ANSI (RDBMS) da SAP AG, que foi entregue também pela MySQL AB de 2003 a 2007. MaxDB é voltado para grandes ambientes SAP, mySAP Business Suite e outras aplicações que requerem a funcionalidade de banco de dados de nível empresarial. Ele é capaz de executar terabytes de dados em operação contínua.

O MaxDB foi um projeto de código aberto sob a licença GNU, porem hoje é mantido e desenvolvido pela SAP AG para suportar todos os seus aplicativos, apesar do MaxDB ser um banco de dados poderoso e possuir uma gama de recursos requeridos pelos ambientes de nível corporativo ele é utilizado somente em soluções da SAP de pequeno e médio porte. O MaxDB possui todos os padrões necessários para um banco de dados e também pode ser utilizado por aplicações não SAP.

SAP MaxDB: http://maxdb.sap.com/

O MiniSAP possui uma versão no qual roda em cima do SAP MAXDB, é possível instalar as ferramentas adicionais chamadas MAXDB TOOLS e o SQL STUDIO. Você pode utilizar o MAXDB para criar bancos de dados, procedures, sequences e etc. Você também pode estudar a arquitetura do banco de dados do SAP por traz do tradicional dicionário de dados do R/3 para aprender como funciona o sistema SAP nos seus bastidores. É recomendado não efetuar nenhuma alteração nas tabelas de sistema do SAP.

Instalando o SAP MaxDB – SQL Studio

1 – Na imagem do disco do NetWeaver 7, na pasta MAXDBTOOLS instale o programa SQLSTD76.exe.

Instalar

Instalar

2 – Escolha o diretório de instalação caso necessário.

Diretório

Diretório

3 – Escolha o nome da pasta da instalação ou  deixe na opção padrão.

Pasta da Instalação

Pasta da Instalação

4 – Confira os caminhos e clique em próximo.

Resumo

Resumo

5 – Aguarde o andamento da instalação.

Andamento

Andamento

6 – Clique em Finish para completar a instalação.

Finalizar

Finalizar

7 – Clique no ícone da área de trabalho chamado SQL Studio para abrir a ferramenta.

SQL Studio

SQL Studio

8 – Clique no ícone em forma de chave para abrir uma conexão com o banco de dados NSP do NetWeaver Server Abap, use as credenciais da imagem abaixo, a senha é a mesma escolhida na instalação do Mini SAP:

Credenciais de Login

Credenciais de Login

9 – Use a instrução SQL da imagem para retornar uma tabela do sistema SAP.

Instrução SQL - SAP NSP

Instrução SQL – SAP NSP

* O SQL Studio permite que você navegue e manipule o MaxDB e as tabelas do banco de dados do sistema SAP. Nunca modifique tabelas do sistema SAP! O sistema pode se tornar instável ou inutilizável.

 

A instrução UPDATE altera os valores existentes em uma tabela, uma tabela de base de uma exibição ou tabela mestre de uma visão materializada.

Segredos do UPDATE

A clausula Update possui uma importante sintaxe na qual permite que você atualize uma tabela a partir de dados de outra tabela sem utilizar um procedimento e sim o próprio set de dados, este método é considerado um segredo,  porque normalmente este tipo de sintaxe é substituída por um Cursor (principalmente em Oracle onde existe uma legião de desenvolvedores aficionados por cursores), porem como veremos a seguir o método utilizando a instrução Update executa apenas um acesso ao banco de dados, para alterar, por exemplo, três linhas enquanto se utilizássemos um Cursor, na mesma situação, precisaríamos de no mínimo quatro acessos ao banco de dados, um para selecionar os valores da primeira tabela e três para alterar os valores na segunda tabela, estes se dariam intercaladamente assim como se utilizássemos uma instrução comum de looping de qualquer linguagem de programação.

Oracle, IBM DB2 e Microsoft SQL Server

Para eliminar cursores e alterar grandes quantidades de dados, o exemplo abaixo garante um alto desempenho se utilizado em bases de dados de grande porte, em tabelas com varias rows, imagine alterar cem mil linhas de uma única vez em um único acesso ao banco de dados ao invés de criar um cursor, onde além da seleção dos dados é necessário um laço para navegar por cada uma das cem mil linhas para executar uma instruções update (cem mil).

Para isto a Oracle e a IBM possui conceitos iguais, utilizando um alias na tabela a ser alterada, já a Microsoft resolveu facilitar a logica para os desenvolvedores adicionando na sintaxe do comando Update a clausula From, igualando a logica do clássico comando Select.

UPDATE SET-BASED

Set-Based é um conceito para executar manipulação de dados SQL utilizando um set de dados ao invés de utilizar um procedimento como um cursor ou uma função, deste modo o motor de banco de dados determina os melhores possíveis algoritmos ou lógica de processamento para fazer esta operação.

Primeiro precisamos preparar um exemplo para que seja fácil entender o método de alterar uma tabela à partir de outra tabela, então vamos utilizar os comandos SELECTINSERT para atualizar os dados das duas tabelas, e um ALTER TABLE para adicionar campos novos nas tabelas, este exemplo necessita da criação das tabelas e inserção de dados dos exemplos anteriores que podem ser encontrados na categoria SQL ou crie um exemplo como na figura a seguir.

Rode todos os comandos do script abaixo exceto o ultimo UPDATE, após a execução dos scripts você obterá duas tabelas contendo dados como na figura abaixo:

UPDATE - 2 Tabelas

UPDATE – 2 Tabelas

Agora precisamos atualizar os dados do campo Tipo da Tabela 1 para o campo Tipo da Tabela 2 que contem valores nulos. O método que normalmente vem a cabeça é utilizar um cursor selecionando os dados da Tabela 1, e enquanto executamos um looping dos dados podemos utilizar um comando Update comum para substituir o valor nulo da Tabela 2 com o valor do campo Tipo da Tabela 1.

Porem é possível obter o mesmo resultado utilizando apenas uma instrução SQL contendo uma subquery no caso do ORACLE e DB2 e utilizando a instrução FROM no caso do MSSQL, como mostra o ultimo exemplo da instrução Update do script abaixo:

Resultado - Oracle

Resultado – Oracle

Exemplo:

Neste exemplo utilizamos a instrução Update baseada em um set de dados,  um método não procedureal para atualizar uma tabela à partir de outra tabela substituindo um cursor.

Oracle / IBM DB2


-- Insere valores da tabela1 para tabela2
insert into tabela2
select * from tabela1;

-- Altera tabelas fisicamente, adicionando um campo
alter table tabela1 add Tipo CHAR(1);
alter table tabela2 add Tipo CHAR(1);

-- Altera campo tipo usando uma condição de igual
update tabela1 set tipo = 'A'
where IdTabela = 2;

-- Altera campo tipo usando uma condição de diferente
update tabela1 set tipo = 'B'
where IdTabela <> 2;

-- Atualiza 2 tabelas sem cursor
update tabela2 A
    set A.Tipo = (Select B.Tipo
                  from Tabela1 B
                  Where B.IdTabela = A.IdTabela)

-- Visualiza tabela 2
Select * from tabela2;

Microsoft SQL Server

-- Insere valores da tabela1 para tabela2
insert into tabela2
select * from tabela1

-- Altera tabelas fisicamente, adicionando um campo
alter table tabela1 add Tipo CHAR(1)
alter table tabela2 add Tipo CHAR(1)

-- Altera campo tipo usando uma condição de igual
update tabela1 set tipo = 'A'
where IdTabela = 2

-- Altera campo tipo usando uma condição de diferente
update tabela1 set tipo = 'B'
where IdTabela <> 2;

-- Atualiza 2 tabelas sem cursor
update tabela2
    set Tipo = B.Tipo
from Tabela1 A, Tabela2 B
Where A.IdTabela = B.IdTabela

-- Visualiza tabela 2
Select * from tabela2

A instrução DELETE apaga uma ou mais linhas de uma tabela, uma tabela não particionada ou dividida, uma tabela base não particionada ou particionada de uma visão, uma tabela recipiente não particionada. A clausula DELETE geralmente é usada em conjunto com uma instrução de filtro WHERE. A cláusula WHERE serve para filtrar limitando os registros afetados por um comando DML (consultas, atualizações ou exclusões). Você pode ver um exemplo dos scripts nas imagens abaixo:

Oracle:

Oracle

Oracle

IBM DB2:

DB2

DB2

Microsoft SQL Server:

MSSQL

MSSQL

Exemplo:

Neste exemplo inserimos um dado na tabela e utilizamos o comando DELETE adicionado de uma clausula de filtro WHERE para apagar uma única linha de dados da tabela.

Oracle

-- Insere um registro na tabela
insert into Tabela1 values (4, 'Este registro será deletado');

-- Deleta o registro inserido
delete from Tabela1 where IdTabela =4;

-- Visualiza a tabela
select  * from Tabela1;

IBM DB2

-- Insere um registro na tabela
insert into DA.Tabela1 values (4, 'Este registro será deletado');

-- Deleta o registro inserido
delete from DA.Tabela1 where IdTabela =4;

-- Visualiza a tabela
select  * from DA.Tabela1;

Microsoft SQL Server

-- Insere um registro na tabela
insert into Tabela1 values (4, 'Este registro será deletado');

-- Deleta o registro inserido
delete from Tabela1 where IdTabela =4;

-- Visualiza a tabela
select  * from Tabela1;