Wszystkie wpisy, których autorem jest mm

Skrypt SQL–c.d.

Czyszczenie Wariantów

Skrypt usuwa wszystkie składniki z wariantów o określonej nazwie

delete from xpoSkladniki where ParentWariant in (select oid from xpoWarianty where Nazwa = ‚Zaimportowany’);
delete from xpoWarianty where Nazwa = ‚Zaimportowany’;

Usuwanie wariantu

Skrypt usuwa z składników wszystkie warianty o wskazanej nazwie np. „Nowy”

delete from xpoWarianty where Nazwa = ‚Nowy’ or Nazwa like ‚%Nowy%’;

Usuwanie składników, które są usunięte z systemu magazynowego

delete from xpoSkladniki where Skladnik in (select localid from xpoTowView where Usuniety = 1)

Skrypt działa na wszystkich wersjach Mozart Produkcja, czyli dal Subiekt GT, Subiekt Nexo Pro, enova i Navireo.

Mozart Produkcja dla Subiekt GT 1.58. SP1 HF2

Na stronach programu jest już do pobrania nowy setup programu Mozart Produkcja wspierająca aplikację Subiekt GT w wersji 1.58 SP1 HF2.

Nowy setup można pobrać z :

ftp://produkcjaprogramy.pl/Rozwojowa/SetupMozartIns_111138.127v43.exe 

Przy okazji wprowadzania zmian związanych z kompatybilnością rozwiązano m.in. problem występujący przy nowych instalacjach związany z błędnym wpisem w rejestrze Sfery dla Subiekt GT.

SQL, zapytanie–zajętość miejsca

Poniżej zapytanie SQL, które wyświetli ilość zajmowanego miejsca przez tabele Mozart Produkcja

Select sum (Romzary.TotalSpaceMB) from
(SELECT
     t.NAME AS TableName,
     s.Name AS SchemaName,
     p.rows AS RowCounts,
     SUM(a.total_pages) * 8 AS TotalSpaceKB,
     CAST(ROUND(((SUM(a.total_pages) * 8) / 1024.00), 2) AS NUMERIC(36, 2)) AS TotalSpaceMB,
     SUM(a.used_pages) * 8 AS UsedSpaceKB,
     CAST(ROUND(((SUM(a.used_pages) * 8) / 1024.00), 2) AS NUMERIC(36, 2)) AS UsedSpaceMB,
     (SUM(a.total_pages) – SUM(a.used_pages)) * 8 AS UnusedSpaceKB,
     CAST(ROUND(((SUM(a.total_pages) – SUM(a.used_pages)) * 8) / 1024.00, 2) AS NUMERIC(36, 2)) AS UnusedSpaceMB
FROM
     sys.tables t
INNER JOIN     
     sys.indexes i ON t.OBJECT_ID = i.object_id
INNER JOIN
     sys.partitions p ON i.object_id = p.OBJECT_ID AND i.index_id = p.index_id
INNER JOIN
     sys.allocation_units a ON p.partition_id = a.container_id
LEFT OUTER JOIN
     sys.schemas s ON t.schema_id = s.schema_id
WHERE
     t.NAME NOT LIKE ‚dt%’
     AND t.is_ms_shipped = 0
     AND i.OBJECT_ID > 255
GROUP BY
     t.Name, s.Name, p.Rows
) as Romzary

SQL, zapytanie Raport pracowników

Select sum (Romzary.TotalSpaceMB) from
(SELECT
     t.NAME AS TableName,
     s.Name AS SchemaName,
     p.rows AS RowCounts,
     SUM(a.total_pages) * 8 AS TotalSpaceKB,
     CAST(ROUND(((SUM(a.total_pages) * 8) / 1024.00), 2) AS NUMERIC(36, 2)) AS TotalSpaceMB,
     SUM(a.used_pages) * 8 AS UsedSpaceKB,
     CAST(ROUND(((SUM(a.used_pages) * 8) / 1024.00), 2) AS NUMERIC(36, 2)) AS UsedSpaceMB,
     (SUM(a.total_pages) – SUM(a.used_pages)) * 8 AS UnusedSpaceKB,
     CAST(ROUND(((SUM(a.total_pages) – SUM(a.used_pages)) * 8) / 1024.00, 2) AS NUMERIC(36, 2)) AS UnusedSpaceMB
FROM
     sys.tables t
INNER JOIN     
     sys.indexes i ON t.OBJECT_ID = i.object_id
INNER JOIN
     sys.partitions p ON i.object_id = p.OBJECT_ID AND i.index_id = p.index_id
INNER JOIN
     sys.allocation_units a ON p.partition_id = a.container_id
LEFT OUTER JOIN
     sys.schemas s ON t.schema_id = s.schema_id
WHERE
     t.NAME NOT LIKE ‚dt%’
     AND t.is_ms_shipped = 0
     AND i.OBJECT_ID > 255
GROUP BY
     t.Name, s.Name, p.Rows
) as Romzary

Numery dokumentów do Zlecenia w Mozart Produkcja z poziomu SQL

Numer dokumentów magazynowych w Mozarcie przechowywane są w tabeli xpoDokumenty, aby powiązać je z Zleceniem musimy przejść przez xpoZleceniaProdukcyjne do xpoZlecenia.

xpoDokumenty -> ZlecProd to oid w tabeli xpoZlecProd

xpoZlecProd -> zlecenie to oid w tabeli xpoZlecenia

Zatem, żeby wyciągnąć listę wszystkich dokumentów magazynowych (+ rezerwacje, jeżeli zlecenie nie jest zamknięte) dla danego zlecenia trzeba przejść od tabeli xpoZlecenia przez xpoZlecProd do xpoDokumenty

Poniżej mamy przykład, tak to wygląda w interfejsie Mozart Produkcja:

clip_image002

a tak z poziomu SQL:

clip_image003

Aby uzyskać taki efekt końcowy należało:

1. Odnaleźć Oid w tabeli xpoZlecenia

USE [MozNexoDemo1]

GO

SELECT [OID]

,[Numer]

FROM [dbo].[xpoZlecenia]

WHERE [Numer] = ‚M/19/0006’

GO

Dla Zlecenia numer M/19/0006

Uzyskamy efekt w postaci:

clip_image004

Na tej podstawie szukamy dalej.

2. Szukamy Oid zleceń produkcyjnych w tablei xpoZlecProd

USE [MozNexoDemo1]

GO

SELECT [OID]

,[zlecenie]

FROM [dbo].[xpoZlecProd]

WHERE [zlecenie] = ‚1005’

GO

Efekt:

clip_image005

A mając powyższe możemy dojść do dokumentów.

Na podstawie Oid zleceń produkcyjnych odnajdujemy dokumenty magazynowe powiązanie z Zleceniem głównym:

USE [MozNexoDemo1]

GO

SELECT [OID]

,[ZlecProd]

,[DokId]

,[IdMagazynu]

,[Numer] FROM [dbo].[xpoDokumenty]

WHERE [ZlecProd] = ‚1013’ or [ZlecProd] = ‚1014’ or [ZlecProd] = ‚1015’

GO

clip_image006

Można to zrobić krok po kroku tak jak powyżej albo łatwiej:

USE [MozNexoDemo1]

GO

SELECT xpoDokumenty.[OID]

,xpoDokumenty.[ZlecProd]

,xpoDokumenty.[DokId]

,xpoDokumenty.[IdMagazynu]

,xpoDokumenty.[Numer]

FROM [dbo].[xpoDokumenty]

JOIN xpoZlecProd ON xpoZlecProd.OID = xpoDokumenty.ZlecProd

JOIN xpoZlecenia ON xpoZlecenia.OID = xpoZlecProd.zlecenie

WHERE xpoZlecenia.Numer = ‚M/19/0006’

Gdzie numer analizowanego zlecenia mamy podany tu:

WHERE xpoZlecenia.Numer = ‚M/19/0006

Mozart dla Nexo – numer zamówienia na dokumentach RW i PW

Poniżej znajduje się opis dodawania do programu Mozart Produkcja (w wersji dla Subiekt Nexo) modyfikacji zmieniającej opis generowanego dokumentu magazynowego (RW i PW) z domyślnego na numer zamówienia (zlecenia montażu z Nexo).

Należy skopiować plik z archiwum do katalogu z Mozartem:

clip_image002

Otworzyć (edytować np. w Notatniku) plik StructureMap.xml znajdujący się w katalogu z Mozartem:

clip_image003

Domyślnie plik wygląda tak:

clip_image004

Aby rozszerzenie działało należy zmodyfikować zawartość pliku poprzez dodanie następującego wpisu:

<DefaultInstance PluginType=”Mozart.Baza.EpilogDokumentu, Mozart.Baza” PluggedType=”Mozart.Dodatki.Nexo.RozszerzonyEpilogDlaDokumentow, Mozart.Dodatki.Nexo” />

Powinniśmy otrzymać taki plik:

clip_image006

Zapisujemy zmiany i od teraz rozszerzenie powinno działać.

Mozart Produkcja moduł produkcyjny (MRP, MES) dla Subiekt Nexo Pro do pobrania na http://produkcjaprogramy.pl