|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
( {# p' O; b( R
Teamcenter ITK二次开发源码分享: 创建一个工作流
. e! F: e! Y7 j! d, |+ F# L7 R# g9 @( m' q* ]% s- B
- /*HEAD CREATE_A_PROCESS CCC ITK */
4 F9 E4 u1 I: o5 z/ F - #include <stdlib.h>
1 P2 a' j" T5 |' p5 K. O - #include <TCcore/aom.h>' g; V+ Q5 ]5 f k) r5 Q
- #include <tc/emh.h>
" A/ S! n0 w) d$ i - #include <epm/epm.h>
" F$ s( H% h8 a6 v, B: J1 n - #include <tc/tc.h>2 z! W% \3 I( s
- #include <sa/tcfile.h>9 d. H( s* l' n8 `- L4 D
- #include <itk/mem.h>+ j" U% O' R2 R; p, I
9 x. {: t5 U$ G, d+ w8 O8 t$ F- #define EXIT_FAILURE 1 : s% g0 G6 a4 O7 `0 s+ s
- #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
4 F. E/ U0 V) R" K/ N3 I3 a+ [" I - static void report_error( char *file, int line, char *function, int return_code)
/ j; O' G2 r. M - {
& q/ I& E+ D5 h- \1 I0 ] - if (return_code != ITK_ok)
3 A7 U2 W. m0 Y3 J) ~! I - {
7 F8 l+ s. `* r& K4 o1 }# s - char *error_message_string;; \1 Y" I! E: Q3 Z5 q9 c- l% x( {& Z
- EMH_get_error_string (NULLTAG, return_code, &error_message_string);
% M# i0 o" J* i7 [$ y7 B% T7 Z3 D - printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
" @2 e/ N! e. C8 I3 q - printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
4 d. {3 Q8 O Q6 r2 G8 O F7 n - if(error_message_string) MEM_free(error_message_string);3 C9 K+ K% M6 |- l
- printf("\nExiting program!\n");
& i8 s! P; o0 |) w% ^( N3 T - exit (EXIT_FAILURE);
% I& ~8 p/ N, O5 B - }! z/ a3 e0 l8 \ i6 K
- }
7 k- T* P- P) w) ~) u z b - . ~) F, V7 z" \% s/ g9 G
- #define EXIT_IF_NULL(X) (check_value(#X, (X)))% x( m6 ~0 u: Z0 U
- static void check_value( char *function, int value )
* I4 w5 Q4 Y. N: U- L& ~7 P - {
" F y9 ?1 ~$ H8 g - if (value == 0)
+ ?5 H. G5 J) l8 a0 y - {2 r1 T j( Y( A e" i$ Z
- printf ("\t%s is NULL\n", function);# Z" M7 @" c2 z+ t( ^" _
- printf("\nExiting program!\n");) p, S" A' P1 H2 `8 q
- exit (EXIT_FAILURE); ' u- V( P0 ~7 F6 r- Y
- }
7 ]7 R# h5 p% R. C" t - }
+ e, p, \ m0 l v# t- F* ^& k - % t9 \# Z% y1 }' Q0 g. f# `* \- i. {; }
6 ]" R9 \% B( \3 R' Z4 `- static void do_it(void)
# u P2 j+ F5 Y; T) y - {
+ q4 ^4 m& }. c - int ]# g. J# o% G4 j
- attach_types[1] = {1};
3 p% Y7 c7 t3 p& @ - tag_t 3 i& d" p% r, u* R; a
- rev = NULLTAG, , p) |5 k; y% s. z3 r
- process_template = NULLTAG,
3 u6 d5 a& f4 j2 K [; \3 L2 d - process = NULLTAG;
y l( D. u, ^5 C0 }% q. x \% f; x - 8 ?9 B" ~& _' v9 N) b0 l% L
- ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
U6 A1 W. |( ]" j! _ - EXIT_IF_NULL( rev );
3 c7 V* w& j% `* K
: i: G+ K- C1 [0 s: q7 g- ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); , \, R6 j9 l9 l7 z7 D0 R' j- \
- EXIT_IF_NULL( process_template );
8 y" }) u' @* L% B
- h. r2 v" {. E$ n9 {- 1 [) Z) Q* K' s: R, ~! j
- ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
L7 t9 P% U0 e# E - attach_types, &process) );5 n, \6 _ ?9 b. G' F' w i
& Z$ l( t+ ^2 o- EXIT_IF_NULL( process );
- H/ ~8 [7 W5 v+ O - }
3 G7 H3 ^/ K6 N" k# ?0 N; n4 c - " q p0 w7 u7 ~$ O
- int ITK_user_main(int argc, char* argv[])
7 p+ h+ |( g( a8 `; b, h - {
, V/ l3 j/ `7 x4 H# x2 Y0 }) | - int
/ K. R% n8 Z* x* C - status = 0; 5 G2 I0 _! t. @0 K, _) V
-
) P, z4 \- G2 ]: l+ m - ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
+ M. O9 W3 f }1 R- X4 ?- ? - status = ITK_auto_login();
7 ^4 ?- _" N& @ y - / P/ j5 j% s! b& E1 m3 p" N+ \9 N% F
- if ( (status != ITK_ok)) printf("\nLogin Failed!\n\n");: b$ {* B8 i5 ?$ G, d8 T8 S# ^, g
- else
7 U3 S. K' i6 R& q4 F - {
; W7 H, Z3 O9 }. O - printf("\nLogin successful!\n\n");- j$ Q) o0 |% P
- ITK_set_journalling(TRUE);* ]# V2 j% t9 B* U9 Z+ e6 j; l
- do_it();
4 ^0 @+ C2 M* m1 @# F7 b - }
* A: M, V3 M, V' A - ITK_exit_module(TRUE);
7 {3 z. w$ w# b' Q. A0 v) P - return status;+ U& `* n2 G. @0 V4 H M, V
- }
复制代码
( T3 d) `$ O+ R2 T. b9 V1 {, w& g5 s$ L) e
1 l# ]+ _: \( v+ v: e3 B, C
|
|